2012-04-29 14 views
1

私はちょうどnodejsを使い始め、それを使ってサーバーを作りました。クライアントはsocket.ioを使用して接続し、処理するジョブを受信し、結果をnodejsサーバーに戻します。時折ECONNREFUSEDエラー

サーバは次のエラーで時折クラッシュしますしかし:

node.js:201 
    throw e; // process.nextTick error, or 'error' event on first tick 
     ^
Error: connect ECONNREFUSED 
    at errnoException (net.js:614:11) 
    at Object.afterConnect [as oncomplete] (net.js:605:18) 

私はこれを引き起こしているものは考えています。

+1

あなたのソースコードをまったく共有できますか? – Menztrual

+0

ソースはありません=答えがありません。 – Hello71

+0

ソースを投稿する場所はどこですか?私はしばらくしてからそれを取り除くことができるようにしたいのですが – Nyxynyx

答えて

1

ECONNREFUSEDは、別のマシンに接続しようとしましたが、接続が拒否されたことを意味します。誰もリスンしていないか、ファイアウォールがブロックしています。

私はhttpを使ってこれを見ましたが、まっすぐなソケットを使っても起こると思います。

+0

ファイアウォールは通常、' ECONNREFUSED'ではなくタイムアウトを生成します。 – Alnitak

+0

私は仕事場でファイアウォールによってECONNREFUSEDを取得しています。しかし、あなたの状況は異なるかもしれません – ControlAltDel

+0

私は数十のファイアウォールで働いています - ほとんどはブラックホール受信トラフィックで、偽の 'ECONNREFUSED'を返送しません。 – Alnitak

0

あなたが呼出しているサーバが接続を拒否すると、おそらくnode.jsが死に苦しんでいるでしょう。試してみてください:

process.on('uncaughtException', function (err) { 
    console.log(err); 
}); 

これはエラーをログに記録し、サービスを継続して実行します。

+0

残念ながら、この迅速な修正は非常に危険です。 'uncaughtException'のノード文書を参照してください:https://nodejs.org/api/process.html#process_event_uncaughtexception – Paul

関連する問題