【问题标题】:Multiple events triggered in redisClient.on('message')redisClient.on('message') 中触发的多个事件
【发布时间】:2015-03-29 09:14:10
【问题描述】:

我正在尝试通过 redis 与 Django 和 Node.js 通信,但是当我尝试在 Node.js 中获取 on('message') 事件时,我得到了 2 次事件...

我有这个:

io.sockets.on('connection', function (socket) {

//Subscribe to chat channel
sub.subscribe('chat');

//Get the event 'message' from Django
sub.on('message', function(channel, message){
        console.log("counter");
    });
.
.
.

我打印了 3 次“计数器”,当我从另一个客户端连接时,我得到 4,5,6,...

我怎样才能只获得一次活动?

【问题讨论】:

    标签: javascript python django node.js redis


    【解决方案1】:

    确保您在正确的频道上收听

    sub.on('message', function(channel, message){
        switch (channel) {
          case 'chat':
               console.log("counter");
               break;
        }
    });
    

    【讨论】:

    • 我试过了,但没用。我得到“计数器”4次。 =(我不知道该怎么办
    • 你在使用集群吗?这可以解释为什么您会收到多个控制台日志。
    【解决方案2】:

    您在 socket.io connection 侦听器中添加了一个侦听器,因此每次打开新连接时,您都会再次附加该侦听器。只需将message 侦听器附加到connection 侦听器之外。

    【讨论】:

      猜你喜欢
      • 2012-06-24
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多