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

时间:2013-12-11 20:02:27

标签: 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 '+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连接,连接室msg。但是,当我打开第二个窗口或浏览器时,我看到2个连接(播放器#1和#2),然后如果我打开第3个窗口,我将看到3个连接,#3,#4,#5。有没有搞错?它必须是愚蠢的东西,但我无法理解,帮助!

-G。

1 个答案:

答案 0 :(得分:0)

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

相关问题