Event:'data' コールバックを使用して着信データをリッスンする net.connect で作成した node.js TCP 接続があります。ほぼ同時に 2 つ以上のメッセージを受信すると、最初のメッセージ以外はすべて失われます。Event:'data' コールバックで行っている処理によって、着信メッセージを見逃す可能性はありますか?
myConnection = net.connect(18000, 192.168.1.50);
myConnection.on('data', function(data) {
console.log("Received data");
//time consuming process here (more than a few milliseconds)
});
2 つ以上の TCP メッセージ (それぞれ 200 バイト未満) がノード アプリにすばやく (数ミリ秒以内に) 送信された場合、コンソールは 1 つのメッセージのみを出力します。
Received data
onData コールバックの実行中に Node は 2 番目以降のメッセージを失いますか? ノードはメッセージをキューに入れるので、コールバックにいる場合でも、後続のメッセージは読み取られるのを待っていますか? Node アプリのメッセージを送信するプログラムがメッセージを正しく送信していない可能性がありますが、調べたところ送信されているようです。