连接到相同端口聊天的不同浏览器的一切都很好用但是当我用ctrl + C关闭我的节点服务器时,我的浏览器出现以下错误:
GET http://my-url net::ERR_CONNECTION_REFUSED
我尝试过以下客户端回调:
socket.on('reconnect_attempt' ...
socket.on('message' ...
但他们没有触发,所以我做了一个肮脏的黑客,它确实有效;使用计时器每秒检查一次套接字,如果节点服务器出现故障,则进行重定向:
setInterval(function(){
if (socket.disconnected) window.open("http://otherurl","_self");
}, 1000);
有没有更好的方法来检测节点服务器是否使用客户端js代码脱机?
答案 0 :(得分:2)
根据其他问题How can I detect disconnects on socket.io?
复制以下内容以供快速参考:
socket.io有一个disconnect事件,将它放在你的connect块中:
socket.on('disconnect', function () {
//do stuff
});
答案 1 :(得分:0)
我找到了!你只需要监听错误事件(socket.io 0.9)
socket.on('error', function() {
// handle server error here
console.log('Error net::ERR_CONNECTION_REFUSED occured. Handle me');
});
socket.io client 0.9 docs中没有记录此事件,这很奇怪