Socket.io命名空间上的客户端重复

时间:2012-11-10 22:41:53

标签: node.js dynamic namespaces socket.io

您好我正在尝试使用动态命名空间来按需创建它们。 除了因某种原因我得到重复或更多客户端之外,它正在工作

服务器端:

io.of("/" + group ).on("connection", function(socket_group) { 
                socket_group.groupId = group;
                socket_group.on("infos", function(){
                    console.log("on the group  !");
                })

                socket_group.on('list', function () {
                    Urls.find({'group' : '...'}).sort({ '_id' : -1 }).limit(10).exec(function(err, data){
                        socket_group.emit('links', data);
                    });
                })  
                [...]
                })

客户端:

socket.emit('list', { ... });

在客户端,只发送一个命令,但服务器始终响应2个或更多响应。每次我关闭/打开我的应用程序时,响应都会增加。

谢谢你,如果你发现了。

1 个答案:

答案 0 :(得分:2)

这可能是正确的行为;就像你要在任何其他环境中堆叠事件处理程序一样。为了确保您只执行一次函数与命名空间的连接,首先检查它的存在(或者在程序中的某个位置定义只根据需要运行一次)。

尝试条件(!io.namespaces["/" + group])