[6] WebSocket接続の確立によりWebSocket接続の状態が OPEN
になると、以後の受信データは次のように処理されることになります。
[53] 受信したデータは、次のように処理しなければなりません。
[38] Chrome はマスクフラグ → RSV フラグ → opcode の順に検査するようです。
[39] Chrome はマスクされている場合、予約ビットが立っている場合、未知 opcode
が使われている場合に、状態符号が 1002
の Closeフレームを送信します。
理由はそれぞれ Masked frame from server
,
Invalid reserved bit
, Unknown opcode
です。
Firefox はこれらの場合に何も送信せずに接続を閉じるようです。
[52] 扱えるフレームのサイズや断片化を結合したメッセージのサイズに上限がある実装は、 それを超えないよう自身を保護しなければなりません >>50。
[2] 利用者エージェントは、種別種別のデータメッセージデータの
WebSocketメッセージを受信したら、
WebSocket
オブジェクトオブジェクトについて、
次のタスクをタスクキューに追加しなければなりません >>1。
[3] 利用者エージェントは、本タスクの実行の時に効率的に実行する条件が満たされていなければ、実行を遅延させて他のタスクキューのタスクを実行することが推奨されています。 >>1
[4] 例えば、受信したデータがディスクにあり、タスク実行時点で
binaryType
が arraybuffer
になっていれば、
データをメモリーに読み込む処理を実行し、その完了まで他のタスクを実行していることができます。 >>1
[34] サーバーは、WebSocketメッセージを受信したら、適宜必要な処理を実行できます。
[42] Editorial: more minor event creation/dispatch cleanup (domenic著, ) <https://github.com/whatwg/html/commit/5fafa73c8ad57f2d98e9c978200e11199fb26bdc>
[47] Specify the realm used for WebSocket-created Blobs and ArrayBuffers (domenic著, ) <https://github.com/whatwg/html/commit/6bf5e4414af4bc2d5fd723443b21f5ada45532fb>
[49] Remove Unicode serialization of an origin (annevk著, ) <https://github.com/whatwg/html/commit/59ebd9c094d9d532458a9ee61f307bf41bc70811>