1

我正在使用 socket.io 和 appjs 开发一个应用程序。当他通过启动应用程序的两个实例导致 EADDRINUSE 时,我无法向用户发出通知,这是他不应该这样做的。

Socket.io 确实检测到 EADDRINUSE,但我只收到写入控制台的警告(不确定是 stdout 还是 stderr)。我想要一个异常,一个有 err 参数的回调,或者至少一个标志来检测连接是否正常。

只是为了澄清,我试图从服务器端做到这一点。在客户端,我已经有客户端-服务器连接超时。

我怎样才能做到这一点?

4

1 回答 1

2

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');
  }
});
于 2013-04-22T17:44:02.020 回答