我正在使用Socket.IO在面向Websocket的node.js服务器上工作。我注意到一个错误,其中某些浏览器未遵循与服务器的正确连接过程,并且未编写代码来妥善处理该错误,总之,它调用了一个从未设置的对象的方法,从而杀死了该对象服务器由于错误。
我特别关注的不是错误,而是当发生此类错误时,整个服务器都将关闭。我可以在节点的全局级别上做任何事情来做到这一点,因此,如果发生错误,它将仅记录一条消息,也许会杀死该事件,但是服务器进程将继续运行?
我不希望其他用户的连接断开,因为一个聪明的用户在包含的大型代码库中利用了未捕获的错误。
您可以将侦听器附加到uncaughtException流程对象的事件。
uncaughtException
来自实际的Node.js API参考的代码(这是“过程”下的第二项):
process.on('uncaughtException', function (err) { console.log('Caught exception: ', err); }); setTimeout(function () { console.log('This will still run.'); }, 500); // Intentionally cause an exception, but don't catch it. nonexistentFunc(); console.log('This will not run.');
您现在要做的就是记录它或对其进行处理,以防万一,您知道在什么情况下会发生错误,您应该在Socket.IO的GitHub页面上提交错误:https : //github.com/ LearnBoost / Socket.IO节点/问题