Dyl*_*oss 12 javascript node.js socket.io
我需要能够检测到用户何时失去与套接字的连接,socket.on("disconnect")当我关闭笔记本电脑时,它似乎没有被调用,因此它不会运行需要运行的ajax调用以便更新用于将用户标记为脱机的数据库.我如何检查连接是否已关闭或其他什么?
正如这里提到的https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO,Socket.IO有它自己的心跳实现.但默认值为25秒间隔,丢失连接的阈值为60秒.
所以我的建议是:在测试时设置默认值.否则你可能会错过门槛.
例:
socket.set("heartbeat timeout", 10);
socket.set("heartbeat interval", 5);
Run Code Online (Sandbox Code Playgroud)
我们也遇到过这个问题,如上所述,使用我们自己的心跳计时器。
例如,服务器每 5 秒发出一次心跳(我们简单地发送服务器时间)。客户端有 11 秒的超时时间,因此有 2 次机会捕获心跳。如果它收到心跳,我们就会重置计时器。如果我们错过了两个心跳,则会运行超时功能,您可以在那里做任何您想做的事情。
非常坦率的。
| 归档时间: |
|
| 查看次数: |
5535 次 |
| 最近记录: |