1

socket.io と appjs を使用してアプリを開発しています。ユーザーがアプリの 2 つのインスタンスを開始して 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 に答える