次のコマンドを使用して、Node.jsで別のプログラムへのTCP接続を開こうとしています。
connection = net.connect(18003, function() {
});
connection.on('close', function() {
console.log('Connection closed');
});
connection.on('error', function() {
console.log('Connection error');
setTimeout(function () {
connection = net.connect(18003, ipAddress,
function() {
});
}, 10000); //Try to reconnect
});
他のプログラムが実行されていない(したがってリッスンしていない)場合、接続エラーは最初は正しく処理されますが、タイムアウト後に(失敗して)再接続しようとすると、次のエラーが発生します。
events.js:68
throw arguments[1]; // Unhandled 'error' event
Error: connect ECONNREFUSED
失敗した接続が最初は正しく処理され、2回目は正しく処理されないのはなぜですか?他のプログラムが起動するのを待っている間、接続を試し続けたいのですが。