我在Express4服务器上使用带有primus-emit的Primus.io。
我正在尝试找到一种方法来连接到发送/接收的每条消息,包括心跳,以便为应用程序的另一个模块跟踪我的活跃用户。(这是使用Redis排序集完成的)。
由于spark.on('data')没有给我任何东西,因为所有的东西都要经过primus-emit,所以我想尝试编写我自己的Primus插件,或者为此编写的中间件,但是我不太清楚如何从packet (在插件中)或req, res (在中间件代码中)转换成spark。因为我在primus.on('connection')中的spark对象上设置了accountNumber。
因此,我正在寻找的是服务器端代码,它将允许我拦截任何在活动火花上传递的数据,只是为了能够将spark.accountNumber推送到Redis。
PS。也许我做错了,所以任何提示都很感谢。从本质上讲,我的系统的另一部分需要知道活跃用户,我使用Redis来实现这一点。
谢谢!!
发布于 2014-06-10 01:28:01
所以我在irc.freenode.net上寻求建议,这是我从#primus上的好朋友那里得到的建议:不需要任何插件/中间件jazz。解决此问题的最简单方法是附加到内部'incoming::data'事件,如下所示:
primus.on('connection', function(spark) {
spark.on('incoming::data', function(data) {
// ... update redis set with 'connected' users here
});
// ... run all other code related to the spark as per usual here
});https://stackoverflow.com/questions/24109638
复制相似问题