インタラクティブな Web アプリ、特に Websocket などのテクノロジを利用するライブラリのコンテキストでは、クライアント ブラウザーとサーバーの間でデータ構造 (マップ、リスト、セットなど) をどのように転送できますか? これまでに出くわした例は、文字列のみを渡します。
これは、使用するライブラリに応じてケースバイケースでサポートされますか? それとも、より一般的なメカニズムが利用可能ですか?
(クライアントの観点から) websocket 経由で 3 つのものを送信できます。
複合 Javascript データ構造 (マップと配列の階層) がある場合は、JSON を使用してそれらを文字列にシリアル化し、WebSocket 接続を介して文字列として送信する必要があります。
WebSocket接続を介してバイナリバイトまたはファイルデータを送信することに関心がある場合は、文字列にシリアル化することもできます(帯域幅に関しては非効率的です)。または、データをArrayBufferまたはBlobとして送信することもできます.
注 1: ArrayBuffer または Blob を送信すると、ネットワーク上でバイナリ WebSocket フレームが生成される場合、サーバーはバイナリ フレームをサポートする必要があります。
注 2: クライアントは、サーバーがバイナリ フレームを送信するときに返されるオブジェクトの種類を選択できます。これは、「arraybuffer」または「blob」に設定できる WebSocket オブジェクトの binaryType プロパティです。
注 3: ブラウザーが古い WebSocket Hixie プロトコル シリーズ (iOS Safari など) のみをサポートしている場合、バイナリ データは存在せず、文字列の送受信のみが可能です。
通常の方法は JSON などです。