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

pgpifvop  于 2023-06-29  发布在  Node.js
关注(0)|答案(2)|浏览(157)

在第一次连接时,用户成功加入房间。但是,断开连接后,房间重新加入失败。当我在房间断开连接后尝试连接时,此代码将房间返回为undefined
如何处理www.example.com重新连接的好主意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);
  })
pvcm50d1

pvcm50d11#

因此,由于www.example.com的默认行为,当用户断开连接时,连接似乎没有关闭Socket.io
这可以通过forcing new connection on loading修复,因此在客户端替换:

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

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

ukdjmx9f2#

这似乎对我有用在断开使用socket.disconnect()到服务器的套接字连接后,您可以使用
socket.connect()
重新建立回服务器连接

相关问题