【发布时间】:2012-02-29 06:15:52
【问题描述】:
我需要能够检测用户何时失去与套接字的连接,当我关闭笔记本电脑时似乎没有调用 socket.on("disconnect"),因此它不会运行需要的 ajax 调用运行以更新数据库以将用户标记为脱机。如何检查连接是否已关闭或其他?
【问题讨论】:
-
我建议有一个监听器,或者一个“心跳”来检查客户端是否有来自服务器的响应。这就是我所做的。
-
我在以前的网站版本中这样做了,尽管在给定时间有足够多的用户,但就请求数量而言,这似乎只是服务器上的一种过载,虽然它可能是最好的,也是唯一的选择。
-
socket.io 使用心跳,所以我确定这是可行的
-
好吧,当我发现它确实检测到它断开连接时,它会触发服务器文件中的断开连接,但是它无法将断开连接发送到它获取指令的页面出于某种原因触发 ajax 调用以更新数据库,所以我需要想办法从服务器文件更新数据库,我不确定如何。
-
您可以执行回调或自定义事件发射器 + 订阅者。
标签: javascript node.js socket.io