【问题标题】:Socket.IO, multiple connections on page loadSocket.IO,页面加载时的多个连接
【发布时间】:2013-12-12 05:46:54
【问题描述】:

我有一个这样的 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 已连接,并且加入了房间消息。但是,当我打开第二个窗口或浏览器时,我会看到 2 个连接(播放器#1 和 #2),然后如果我打开第三个窗口,我会看到 3 个连接,#3、#4、#5。有没有搞错?这一定是一些愚蠢的事情,但我无法弄清楚,帮助!

G.

【问题讨论】:

    标签: node.js sockets express socket.io


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-02-15
      • 2017-06-14
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      相关资源
      最近更新 更多