硬关闭窗口时不会触发Socket.IO套接字断开事件

时间:2015-12-13 21:53:37

标签: javascript node.js sockets socket.io

我目前正在使用Socket.io构建聊天室 一切正常,使用起来非常简单并且记录完备。

问题是,如果我重新加载页面,等待套接字尝试连接,然后在连接之前关闭窗口,套接字的disconnect事件永远不会被触发。

只有在连接套接字之前关闭选项卡但在发送连接请求之后才会出现这种情况。

因此,当我刚关闭标签时,我仍然会在聊天室中为其他人在线显示。

有没有办法超时服务器上的连接?如果套接字不再处于活动状态,我可以为其他用户触发断开事件吗?

1 个答案:

答案 0 :(得分:1)

我深入挖掘并发现Socket.io已经实现了这个问题:问题是套接字在我断开连接之前关闭了。听众就可以了。我通过检查底层连接readyState(已经设置为'已关闭')并解雇自己的事件来解决它。 - whitep4nther