Socket.io延迟解雇“断开连接”事件?

时间:2011-08-25 15:06:45

标签: node.js socket.io

我有一个连接到node.js服务器的socket.io客户端。如果我在命令行中杀死node.js,客户端立即冻结(即通信停止),但在“disconnect”事件被触发之前有大约20秒的延迟。这种行为是设计的吗?是否有配置选项来减少触发断开连接事件的延迟?

在socket.io的相对较新(最近6个月)更新中,此行为似乎已更改。在重新连接功能内置到socket.io本身之前,我使用“disconnect”事件处理程序实现了我自己的重新连接逻辑,并且当服务器通信停止时,“disconnect”事件几乎立即被触发。

2 个答案:

答案 0 :(得分:7)

是。 close timeout

答案 1 :(得分:2)

我认为这可能是一种设计模式。客户端可能假设服务器“暂时”无法访问(网络流量等),并且基本上会继续尝试访问它...直到客户端超时开始。

我直接从客户端向服务器发送断开连接(socket.disconnect()),但我没有遇到此问题。