WebSocket
インターフェイス send
メソッド[12] WebSocket接続においてWebSocketメッセージ送信するには、 次のようにしなければなりません >>11。
[13] データフレームを Close
フレームより後に送ってはなりません
>>7。
WebSocket接続の状態が OPEN
でなければ (なくなれば)、
この手順は停止しなければなりません >>11。
[4] 実装時は、バッファーに一時的にフレームを書き込み、 適当な時機に OS (ソケット層) に引き渡すこととなります。 素朴な実装は、WebSocketメッセージ送信時に即座にソケットに送信する (= バッファリングしない) こととなります。より高度な実装は、その時機を調整できます。
[5] アプリケーション内でのバッファリングは、
bufferedAmount
属性によって著者が観測できます。
この属性の値は、 event loop step 1 で更新されます。
[7] アプリケーションのバッファーからネットワーク側へと引き渡されるまで、
WebSocket
オブジェクトはごみ収集されないことになっています。
WebSocket
のごみ収集を参照。[6] TCP のフロー制御などを含む OS 側でのバッファリングは、 アプリケーションからは検知できません。
[10] Chrome はすべて1つのフレームで送信するようです。 (しかしGB級のデータを送ろうとすると、クラッシュします。)
bufferedAmount
は、送信されない場合でも増えていきます。