【发布时间】:2014-04-08 16:32:34
【问题描述】:
目前我正在使用具有 TCP 套接字连接(使用 socket.io)的 node.js 服务器,我正在通过浏览器显示实时数据。
考虑一个场景,我已经登录到我的应用程序并且所有实时都通过网络浏览器显示。现在网络突然断开了。那时,我想在客户端套接字发出 disconnect 事件时显示一条消息“已过期”。
socket.on('disconnect', function () {
console.log("Disconnected from the server");
alert("disconnect");
});
现在我的问题是:上面的disconnect 事件在 60 秒后发出;在用户尝试更新之间,它不会起作用,这会给我们留下不好的印象。
如何克服这种情况以及如何在网络断开时突然发出disconnect事件?
【问题讨论】:
-
这通常是不可能的。当另一个国家的某些路由器崩溃时,如何“突然”通知您的应用程序?网络/协议将尝试重新路由您的数据,这需要时间。
-
@MartinJames 这是可能的。当我关闭/刷新浏览器时,它已经触发了“断开连接”事件; 而当我尝试断开网络电缆时,它会在 60 秒后触发相同的断开事件。 所以我的问题是 延迟,这是由于浏览器/节点之间的心跳脉冲和 socket.io 在下面的答案中有清楚的解释。希望你明白我的意思:)
标签: javascript node.js sockets socket.io