Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Node.js Socket.IO,页面加载时有多个连接_Node.js_Sockets_Express_Socket.io - Fatal编程技术网

Node.js Socket.IO,页面加载时有多个连接

Node.js Socket.IO,页面加载时有多个连接,node.js,sockets,express,socket.io,Node.js,Sockets,Express,Socket.io,我有一个socketIO/express应用程序,如下所示: function joinRoom(socket,roomName){ socket.join(roomName); console.log('success joining '+roomName); socket.broadcast.to(roomName).emit('chat',{type:'join',msg:guestList[socket.id]+' has arrived in '+roomNam

我有一个socketIO/express应用程序,如下所示:

function joinRoom(socket,roomName){
    socket.join(roomName);
    console.log('success joining '+roomName);
    socket.broadcast.to(roomName).emit('chat',{type:'join',msg:guestList[socket.id]+' has arrived in '+roomName+'!'});
    socket.emit('chat',{type:'join',msg:'You are now in '+roomName});
}

function assignName(socket){
    var name = 'Player#'+guestId;
    guestList[socket.id]= name;
    socket.emit('chat',{type:'name',msg:name});
    return guestId+1;
}

io.sockets.on('connection', function (socket) {
  io.of('/lobby').on('connection', function (socket) {
    guestId=assignName(socket);             
    joinRoom(socket, 'Lobby');      
  });   
  handleMessage(socket);
});
当我打开第一个浏览器窗口时,一切都很顺利,我看到Player#0已连接,join room消息已发送。但是,当我打开第二个窗口或浏览器时,我会看到两个连接(player#1和#2),然后如果我打开第三个窗口,我会看到3个连接,#3,#4,#5。搞什么鬼?一定是有什么蠢事,但我想不出来,救命啊

G.

已排序! 基本上,我将名称空间连接与io.sockets.on(…)分离,行为恢复正常。这是有道理的,虽然我不知道为什么连接事件的数量是递增的