nodejs socket.io不可捕捉的错误

我在nodejs上运行socket.io,在apache网站上运行socket.io客户端。 如果我没有启动nodejs服务器,并且我加载了客户端页面,则错误事件触发时会显示一条空的错误消息,而且我也会将以下内容转储到我的Chrome控制台

GET http://domain.com:1337/socket.io/1/?t=1359731838906 socket.io.js:1659 Socket.handshake socket.io.js:1659 Socket.connect socket.io.js:1699 Socket socket.io.js:1551 io.connect socket.io.js:94 (anonymous function) general.js:7 (anonymous function) 

我能做些什么来阻止这个错误被写入控制台?

隐藏这个错误的唯一方法是不要首先调用io.connect – 这当然意味着即使服务器启动,你的应用程序的套接字函数也不能工作。

重要的是要明白,你所看到的错误信息既不是由socket.io本身(通过console.error() )放置在那里,也不是一个未捕获的JSexception。

错误消息由浏览器的XHR对象本身放置在您的控制台中。 它告诉你一个XHR请求失败(因为你的服务器没有运行)。 堆栈跟踪告诉你什么代码启动了XHR请求; 这不是一个实际例外的痕迹。

由于socket.io 必须向服务器发出请求,因此如果服务器没有响应,它(或者你)不可能阻止在控制台中出现错误消息。

尝试

 socket.on('connect_failed', function(){ console.log('Connection Failed'); }); 

没有testing过这个。 在这里find了Node.js socket.io-client connect_failed / connect_error事件