如何检测服务器是否离线,或由于其他原因无法连接。我的代码看起来像这样。
this.socket = io.connect(connectionInfo, {
reconnect:false
});
它不会抛出任何错误,因此 try/catch 子句不起作用。
如何检测服务器是否离线,或由于其他原因无法连接。我的代码看起来像这样。
this.socket = io.connect(connectionInfo, {
reconnect:false
});
它不会抛出任何错误,因此 try/catch 子句不起作用。
利用
this.socket.on("connect", callback)
捕捉连接事件this.socket.on("disconnect", callback)
捕捉断开事件this.socket.on("connect_failed", callback)
捕获失败的连接尝试this.socket.io.on("connect_error", callback)
捕捉服务器是否离线您可以在https://github.com/LearnBoost/socket.io/wiki/Exposed-events找到所有事件
自 1.0 更新以来,连接事件有所不同。阅读此页面了解更多信息:http ://socket.io/docs/migrating-from-0-9/
就我而言,我可以检测到这样的连接错误:
var manager = io.Manager('http://'+window.location.hostname+':3000', { /* options */ });
manager.socket('/namespace');
manager.on('connect_error', function() {
console.log("Connection error!");
});
this.socket = io.connect('http://'+window.location.hostname+':3000');
如果您的服务器处于脱机状态并且客户端尝试连接使用:
socket.on('error', function (err) {
console.log(err);
});
所以客户端知道他无法访问服务器。