我有一个连接到node.js服务器的socket.io客户端。如果我在命令行中杀死node.js,客户端立即冻结(即通信停止),但在“disconnect”事件被触发之前有大约20秒的延迟。这种行为是设计的吗?是否有配置选项来减少触发断开连接事件的延迟?
在socket.io的相对较新(最近6个月)更新中,此行为似乎已更改。在重新连接功能内置到socket.io本身之前,我使用“disconnect”事件处理程序实现了我自己的重新连接逻辑,并且当服务器通信停止时,“disconnect”事件几乎立即被触发。
答案 0 :(得分:7)
是。 close timeout。
答案 1 :(得分:2)
我认为这可能是一种设计模式。客户端可能假设服务器“暂时”无法访问(网络流量等),并且基本上会继续尝试访问它...直到客户端超时开始。
我直接从客户端向服务器发送断开连接(socket.disconnect()),但我没有遇到此问题。