当socket.io客户端无法连接到提供的服务器时,如何捕获?
这似乎不起作用:
var socket = io('http://example.com:3000');
socket.on('connect_fail', function() {
console.log("fail"); // doesn't get here
});
如果我的服务器处于离线状态,则该事件不会触发,并且在控制台中会重复:XMLHttpRequest cannot load http://example.com:3000/socket.io/?EIO=2&transport=polling&t=1407852011369-40. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://dashboard.inkstand.org' is therefore not allowed access.
当服务器在线时,一切都按预期工作。
我无法找到有关此内容或任何客户端连接事件的任何好文档。
答案 0 :(得分:1)
而不是:
socket.on('connect_fail', function() {
console.log("fail"); // doesn't get here
});
尝试:
socket.on('error', function(err){
console.log("fail");
// Do stuff
});
时触发
答案 1 :(得分:0)
经过更多研究,我发现在v1.0中处理的方式不同。
var manager = io.Manager('http://example.com:3000', {});
var socket = manager.socket('/');
manager.on('connect_error', function() {
console.log("fail"); // does get here now
});