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

Sco*_*own 5 node.js socket.io

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

看来这种行为在socket.io的最新(最近6个月)更新中发生了变化.在重新连接功能内置到socket.io本身之前,我使用"disconnect"事件处理程序实现了我自己的重新连接逻辑,并且当服务器通信暂停时,"disconnect"事件几乎立即触发.

ful*_*ife 2

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

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