1

我在 Express 4 服务器上使用 Primus.io 和 primus-emit。

我正在尝试找到一种方法来挂钩发送/接收的每条消息,包括心跳,以便跟踪我的活动用户,用于应用程序的另一个模块。(这是使用 Redis 排序集完成的)。

由于spark.on('data')没有给我任何东西,因为一切都通过 primus-emit,我正在考虑尝试为此编写我自己的 Primus 插件或中间件,但我不太清楚如何从packet(在插件),或req, res(在中间件代码中),到spark. 当我在 spark 对象上设置 accountNumber 时,在primus.on('connection').

所以我正在寻找的是服务器端代码,这将允许我拦截任何通过活动火花传递的数据,以便能够推spark.accountNumber送到 Redis。

PS。也许我以错误的方式解决这个问题,所以任何提示都表示赞赏。本质上,我系统的另一部分需要了解活动用户,我为此使用了 Redis。

谢谢!!

4

1 回答 1

1

所以我征求意见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
});
于 2014-06-09T17:28:00.867 回答