Websocket メッセージのデータは、文字列 (テキスト メッセージ) またはバイナリ データのいずれかです。あなたの場合、それは文字列データであり、文字列の内容はバイナリ イメージの base64 エンコーディングです。より最適化されたプログラムでは、イメージをバイナリで転送することもできます。
メッセージのタイプによって、e.data は別のタイプになります。
- メッセージがテキスト メッセージの場合、e.data は文字列型になります。
- メッセージがバイナリ メッセージの場合、e.data には
ArrayBuffer
またはBlob
オブジェクトが含まれます。プロパティを設定することで、受け取るバイナリ データの表現を自分で決めることができWebSocket.binaryType
ます (たとえば、 to "arraybuffer"
)。
instanceof
バイナリ メッセージまたはテキスト メッセージを受信したかどうかを確認するために使用できます。
さまざまな種類のバイナリ データを転送する場合は、メッセージの先頭にヘッダーを使用して、メッセージの内容をクライアントに伝えることができます。たとえば、バイナリ データの最初のバイトをヘッダーとして宣言します。最初のバイトに 1 が含まれている場合、残りのデータは画像であり、最初のバイトに 2 が含まれている場合、残りのデータは短いオーディオ サンプルなどです。ただし、バイナリを分割または結合する必要があるため、両側で少し難しくなります。データ配列。
あるいは、クライアントとサーバーの間で複数の並列 WebSocket 接続を使用することもできます。映像データ用、音声データ用、一般メッセージ用など。