Node.js Primus.io正在服务器上拦截数据
我正在Express 4服务器上使用Primus.io和Primus emit 我正试图找到一种方法来连接发送/接收的每一条消息,包括心跳,以便跟踪我的活跃用户,用于应用程序的另一个模块。(这是使用Redis排序集完成的) 由于Node.js Primus.io正在服务器上拦截数据,node.js,primus,Node.js,Primus,我正在Express 4服务器上使用Primus.io和Primus emit 我正试图找到一种方法来连接发送/接收的每一条消息,包括心跳,以便跟踪我的活跃用户,用于应用程序的另一个模块。(这是使用Redis排序集完成的) 由于spark.on('data')没有给我任何东西,因为一切都在通过primus emit,所以我想尝试编写自己的primus插件或中间件,但我不太明白如何从数据包(插件中)或req,res(中间件代码中)到spark。当我在spark对象上设置accountNumber时
spark.on('data')
没有给我任何东西,因为一切都在通过primus emit,所以我想尝试编写自己的primus插件或中间件,但我不太明白如何从数据包(插件中)或req,res
(中间件代码中)到spark
。当我在spark对象上设置accountNumber时,在primus.on('connection')
中
所以我要寻找的是服务器端代码,它允许我截获任何通过活动sparks传递的数据,只是为了能够将spark.accountNumber
推送到Redis
顺便说一句,也许我走错了方向,所以任何提示都很感激。本质上,我的系统的另一部分需要知道活动用户,为此我使用Redis
谢谢 所以我征求了关于irc.freenode.net
的建议,这是我从好人那里得到的关于#primus
的建议:不需要任何插件/中间件。解决此问题的最简单方法是附加到内部'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
});