我知道 socket.io 客户端库将关闭当前的 socket.io 连接(然后尝试重新连接)如果它没有定期收到对它发送到服务器的 ping 数据包的响应(假设连接已经因故去世)。并且,有用于控制此重新连接行为的客户端选项。
但是,如果客户端进入非活动状态并停止发送 ping 消息(比如因为客户端进入睡眠状态),服务器端会发生什么情况?我在 socket.io 服务器端文档中找不到任何信息来解释这种情况或允许对其进行配置。服务器是否会关闭一个不活动的客户端 socket.io 连接(一个它没有从中接收 ping 消息的连接)?如果是这样,服务器将等待多长时间,该行为是否可配置?
原文由 jfriend00 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据 socket.io 2.20 自述文件(截至 2020 年 1 月的最新版本):
因此,您可以通过在 socket.io 内的 engine.io 组件上设置以下超时属性来配置服务器端和客户端超时设置。
使用 socket.io 版本 2.20:
使用旧版本的 socket.io 也是一样: