Socket.io-nodejs服务器端.重新连接后传输关闭



我有两个浏览器socket.io客户端。例如客户端A和客户端B,它们连接到一号房间。

以下行为发生在我的计算机上(已安装nodejs 5,socket.io 1.4.5):我们假设两个客户端都连接到一号房间。当客户端A断开连接(断开连接)并在超时后重新连接,并且客户端B不使用发送消息到第一房间时,客户端A的原始套接字将关闭,传输原因为:超时。这对我有好处。我需要这种行为。

另一方面:当客户端A断开连接(断开连接)并在超时时间内重新连接,并且客户端B在断开连接的时间内使用emit向第一房间发送消息时,则重新连接后客户端A的原始套接字将立即关闭,原因是传输:已关闭且未超时。

看起来有一些行为会在超时时间内选择断开连接的套接字,以便其他联机套接字尝试向同一房间发送消息。当发送的消息无法传递到断开连接的套接字(在客户端)时,可能会选择此套接字在超时时间内重新连接后立即关闭事务。

我注意到了进一步的问题。当移动客户端失去连接,有人将发射发送到移动客户端连接的房间时,移动套接字会立即断开,不会超时,原因是linux上的传输关闭。

上面的情况对于mac系统是不同的。套接字已断开连接,或者超时已过,或者如果客户端移动设备重新连接,则立即断开连接。

有人能帮上忙吗?同一版本的节点(6.2)和同一版本套接字(1.4.6)上的这种行为不同的原因是什么?

最新更新