Disconnect事件在2分钟后被触发

时间:2012-07-30 19:22:18

标签: node.js socket.io

我正在使用Node.JS和Socket.IO创建聊天,我使用持续时间为10的XHR轮询在Heroku上托管它。

当我离开我的客户端页面时,我想在服务器上自动调用disconnect方法,将其从其他客户端删除。它实际上已经完成了但是...客户真的离开了页面2分钟后,这很尴尬。

有没有办法在客户端不回复时立即调用disconnect方法?或者至少知道客户何时不在的时候会更快一点?

我试图在页面退出时用jQuery关闭套接字客户端但它不起作用。问题是使用socket.disconnect()是异步的,非阻塞的,用户在请求完成之前就离开了......

2 个答案:

答案 0 :(得分:2)

您可以使用heartbeat timeout配置的heartbeat intervalclose timeoutsocket.io值进行游戏。

在此页面中搜索heartbeattimeouthttps://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO

答案 1 :(得分:0)

如果将socket.io客户端上的'sync disconnect on unload'选项设置为true,它将在onbeforeunload中发送一个同步xhr断开连接请求,该请求将断开套接字。