4

ビデオをストリーミングする方法を示すこの素晴らしいページを見つけました。

onmessage彼のコードは、データがそのjpgようなものであると想定しています

ws.onmessage = function (e) {
    $("#image").attr('src',  'data:image/jpg;base64,'+e.data);
}

オーディオやその他のページデータも必要です。

WebSocket でメッセージ タイプとバイナリ タイプを解析するにはどうすればよいですか?

4

1 に答える 1

9

Websocket メッセージのデータは、文字列 (テキスト メッセージ) またはバイナリ データのいずれかです。あなたの場合、それは文字列データであり、文字列の内容はバイナリ イメージの base64 エンコーディングです。より最適化されたプログラムでは、イメージをバイナリで転送することもできます。

メッセージのタイプによって、e.data は別のタイプになります。

  1. メッセージがテキスト メッセージの場合、e.data は文字列型になります。
  2. メッセージがバイナリ メッセージの場合、e.data にはArrayBufferまたはBlobオブジェクトが含まれます。プロパティを設定することで、受け取るバイナリ データの表現を自分で決めることができWebSocket.binaryTypeます (たとえば、 to "arraybuffer")。

instanceofバイナリ メッセージまたはテキスト メッセージを受信したかどうかを確認するために使用できます。

さまざまな種類のバイナリ データを転送する場合は、メッセージの先頭にヘッダーを使用して、メッセージの内容をクライアントに伝えることができます。たとえば、バイナリ データの最初のバイトをヘッダーとして宣言します。最初のバイトに 1 が含まれている場合、残りのデータは画像であり、最初のバイトに 2 が含まれている場合、残りのデータは短いオーディオ サンプルなどです。ただし、バイナリを分割または結合する必要があるため、両側で少し難しくなります。データ配列。

あるいは、クライアントとサーバーの間で複数の並列 WebSocket 接続を使用することもできます。映像データ用、音声データ用、一般メッセージ用など。

于 2013-10-11T18:29:35.240 に答える