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事件