我正在使用 socket.io 和 appjs 开发一个应用程序。当他通过启动应用程序的两个实例导致 EADDRINUSE 时,我无法向用户发出通知,这是他不应该这样做的。
Socket.io 确实检测到 EADDRINUSE,但我只收到写入控制台的警告(不确定是 stdout 还是 stderr)。我想要一个异常,一个有 err 参数的回调,或者至少一个标志来检测连接是否正常。
只是为了澄清,我试图从服务器端做到这一点。在客户端,我已经有客户端-服务器连接超时。
我怎样才能做到这一点?
EADDRINUSE 是网络模块发出的错误。此处的文档:http ://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback
简而言之,您需要提供一个回调来.on('error'
处理错误。
server.on('error', function (e) {
if (e.code == 'EADDRINUSE') {
console.log('Address in use');
}
});