您好我正在尝试使用动态命名空间来按需创建它们。 除了因某种原因我得到重复或更多客户端之外,它正在工作
服务器端:
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个或更多响应。每次我关闭/打开我的应用程序时,响应都会增加。
谢谢你,如果你发现了。
答案 0 :(得分:2)
这可能是正确的行为;就像你要在任何其他环境中堆叠事件处理程序一样。为了确保您只执行一次函数与命名空间的连接,首先检查它的存在(或者在程序中的某个位置定义只根据需要运行一次)。
尝试条件(!io.namespaces["/" + group])