Node.js Socket.IO,页面加载时有多个连接
我有一个socketIO/express应用程序,如下所示: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
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(…)分离,行为恢复正常。这是有道理的,虽然我不知道为什么连接事件的数量是递增的