我认为这个问题很简单,但我还没有在官方Socket.io docs找到答案。
我的Socket.io服务器和客户端通信成功,当我关闭服务器时,客户端将尝试重新连接服务器失败。这在Chrome开发人员控制台中显示:
有没有办法在客户端Javscript中检测此事件并以某种方式对其做出反应?我想我会在页面上显示一个对话框,例如"抱歉,服务器负载很重,等等。
答案 0 :(得分:36)
从Socket 1.x开始,处理此问题的正确方法是将Manager对象用于给定套接字。它抛出一个connect_error
事件,可以如下所示进行处理:
socket.io.on('connect_error', function(err) {
// handle server error here
console.log('Error connecting to server');
});
答案 1 :(得分:4)
这应该有效:
var socket = io('http://localhost');
socket.on('connect_error', function(err) {
// notify user
});
答案 2 :(得分:0)
从现在到过去,都无法“ 处理” 红色消息。 您无法隐藏它们。
参考: https://stackoverflow.com/a/43056626/5563074
您不能隐藏,但是socket.io 有一种捕获它们的方法,就像前面介绍的那样。
socket.on('connect_error', function(e){
//Do something
//console.log(e);
});
文档: https://socket.io/docs/client-api/#Event-%E2%80%98connect-error%E2%80%99