3

大きなサイズの画像データ転送のサーバー側の進行状況を知るために、tcp ソケット書き込みの各ステップを制御する方法はありますか?

最悪の場合、メイン ノードの bin フォルダーを変更してこのイベントを追加するにはどうすればよいですか?

最後に、node.js http tcp ソケットの最大長が 1460 である理由を説明してもらえますか?

4

1 に答える 1

1

ドキュメントから:

socket.write(data, [encoding], [callback])

ソケットでデータを送信します。2 番目のパラメーターは、文字列の場合のエンコーディングを指定します。デフォルトは UTF8 エンコーディングです。

データ全体がカーネル バッファに正常にフラッシュされた場合は true を返します。データの全部または一部がユーザー メモリのキューに入れられた場合は、false を返します。'drain' は、バッファーが再び解放されると発行されます。

オプションのコールバック パラメータは、データが最終的に書き出されたときに実行されます。これはすぐには実行されない場合があります。

イベント:「ドレイン」

書き込みバッファが空になると発生します。アップロードを抑制するために使用できます。

参照: socket.write() の戻り値

したがって、データがフラッシュされたときに呼び出されるコールバックを指定するか、ソケットに「ドレイン」イベント ハンドラーを登録することができます。これは、反対側の進行状況を実際に通知するものではありませんが、適切に実装されたサーバーは、キューがいっぱいになると適切な通知を送信し、Node.js 側でイベントをトリガーします。

于 2013-07-21T20:46:23.897 に答える