Socket.IO - 如何脱机处理Node.js

时间:2014-06-28 21:38:53

标签: node.js sockets callback

连接到相同端口聊天的不同浏览器的一切都很好用但是当我用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代码脱机?

2 个答案:

答案 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中没有记录此事件,这很奇怪