Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript redisClient.on('message')中触发了多个事件_Javascript_Python_Django_Node.js_Redis - Fatal编程技术网

Javascript redisClient.on('message')中触发了多个事件

Javascript redisClient.on('message')中触发了多个事件,javascript,python,django,node.js,redis,Javascript,Python,Django,Node.js,Redis,我试图通过redis与Django和Node.js通信,但当我试图在Node.js中获取on'message'事件时,我得到了两次该事件 我有这个: io.sockets.on('connection', function (socket) { //Subscribe to chat channel sub.subscribe('chat'); //Get the event 'message' from Django sub.on('message', function(channel,

我试图通过redis与Django和Node.js通信,但当我试图在Node.js中获取on'message'事件时,我得到了两次该事件

我有这个:

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


我怎样才能只收听一次活动?

确保您收听的频道正确

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

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

我尝试过,但没有成功。我得到柜台4次我不知道该怎么办你在用集群吗?这可以解释为什么您会得到多个控制台日志。