断开连接的Socket.io恢复

Ghe*_*man 6 javascript websocket socket.io

我在Socket.io上与服务器和客户端聊天.客户端向/从服务器发送和接收消息.为了测试断线事件,我拔出以太网插头并在几秒钟后重新连接.

之后,从客户端发送消息仍然正常,并且在断开连接期间所有先前发送的消息都在Chrome和Firefox上成功重新发送.

但是,对于接收,Chrome可以,但不适用于不再从服务器接收消息的Firefox.

问题是如何正确处理此类网络问题并使我的聊天更加健壮?

Ghe*_*man 0

我终于找到了问题的根源。Socket.io 确实可以开箱即用地重新连接,因此您无需尝试重​​新连接。然而,成功重新连接后,套接字似乎没有重新加入同一个房间。我设法像这样解决问题:

socket.on('reconnect', () => {
  socket.emit('onEnter', data);
});
Run Code Online (Sandbox Code Playgroud)

这里的onEnter事件用于让服务器加入我到房间。但我不明白为什么它不能保留房间。