断开连接后我无法连接到 Socket.io 个房间

I can not connect to Socket.io room after disconnect

第一次连接时,用户成功加入房间。但是,断开连接后,房间重新加入失败。当我在房间断开后尝试连接时,此代码 returns 房间为 undefined

关于如何处理 Socket.io 重新连接有什么好主意吗?

服务器:

io.on('connection', function onConnection(socket){
   socket.on('adduser', function(data){
      socket.room=data.room ; 
      socket.join(socket.room)
          })

   })

socket.on('drawing', function(points) {
       console.log("on room"+ socket.room)//logs undefined on reconnect 
        io.to(socket.room).emit('drawing', points);

console.log("broadcasting")
 });

断开连接时:

  socket.on('disconnect', function(){
       console.log(socket.room)

       socket.leave(socket.room);

})

客户:

var socket = io.connect(':3000');

socket.on('connect', function(){
        console.log("emit socket")
    socket.emit('adduser', data);
  })

因此,由于 Socket.io 默认行为

,当用户断开连接时,连接似乎没有关闭

这可以通过 forcing new connection on loading 解决 所以在客户端替换:

var socket=io.connect(':3000')

var socket=io.connect(':3000', {'force new connection': false})