上に構築された双方向通信プロトコルやろ、とか思ってました。仕様を調べてみたところ、その理解が根底から覆されました。上でブラウザベースの双方向通信を実現しようというプロトコルです。テキストとバイナリ転送の双方に対応しており、これらの情報は「フレーム」という単位でやりとりされます。このフレームにはデータフレームと制御フレームがあります。指示するためのフレームです。フレームってことはその長さには限界もありますし、データがクソ長いときのために、フレーム自体はフラグメンテーションをサポートしています。クソ長いデータは複数フレームに分割されることになります。プロトコルデータは以下のようになります。関わっているかというと、通信開始時のブラウザ・サーバ間のハンドシェークです。機器、サーバには相応の投資がされています。サーバを構築し、実際の通信をキャプチャしてみました。コネクションが確立し「OPEN」状態になります。この「OPEN」な状態になれば、互いにデータを送受信できるようになります。開始まず、ハンドシェークは、ブラウザ(クライアント)から開始されます。以下が実際のハンドシェークの開始です。用ヘッダを組み合わせたものになります。通信を前提にした場合、必須ヘッダは以下になります。書いたものは固定値です。エンコードしたもの)です。ヘッダとして送り返します。