我在节点中使用这段AutobahnJS代码来接收来自服务的数据。它工作得很好,每秒可以获得多个事件。当我的互联网临时断开时,Autobahn没有检测到丢失的连接,也没有向控制台写入"Websocket connection dropped“,它只是挂起了。无限期的。
是否有一个可以设置的超时时间,如果1分钟后没有数据到达,重新连接?或者,我是否可以使用setTimeout函数来ping服务器,如果没有pong返回,则关闭连接并尝试重新打开它?
我用谷歌搜索到手指都要出血了,但我没有找到这个问题的简单答案。非常感谢!
connection.onopen = function(session) {
session.subscribe(arg, someEvent);
}
connection.onclose = function() {
console.log("Websocket connection dropped");
}
connection.open();发布于 2016-04-10 21:13:27
如果不发送一些数据,就不可能识别出不干净的断开。协议级别的Autobahn ping/pong机制不会在浏览器中显示,并且在Node.js中运行时,WebSocket |JS没有任何不同的处理方式。
目前,您需要在应用程序级别实现自己的ping/pong机制。
https://stackoverflow.com/questions/36527429
复制相似问题