【问题标题】:Primus.io intercepting data on the serverPrimus.io 拦截服务器上的数据
【发布时间】:2014-06-10 01:28:00
【问题描述】:

我在 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。

谢谢!!

【问题讨论】:

    标签: node.js primus


    【解决方案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
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-06
      • 2020-12-16
      • 1970-01-01
      • 2016-04-26
      相关资源
      最近更新 更多