ここで https://developer.mozilla.org/en/WebSockets/WebSockets_reference/MessageEvent 属性データがDOMString型であると述べています|ブロブ| ArrayBuffer。どのタイプが欲しいかをどうやって見分けるのですか?または、どのタイプを取得したかをどのように知ることができますか?
サーバーが送信できる適切な2種類のフレームは、テキストフレームとバイナリフレームです( 5.2 )。 ws.binaryType
は、バイナリデータを取得する形式を定義できます。
binaryType
がarraybuffer
またはblob
のいずれかに設定されているかどうかによって異なりますタイプを判別するには、以下を使用できます。
e.data instanceof ArrayBuffer
e.data instanceof Blob
typeof e.data === "string"
参照 :
4。typeがデータがテキストであることを示している場合は、eventの
data
属性をに初期化します。データ。typeがデータがバイナリであることを示し、
binaryType
が "blob
"に設定されている場合、eventのdata
属性をdataを生データとして表す新しいBlob
オブジェクト。Typeがデータがバイナリであることを示し、
binaryType
が "arraybuffer
"に設定されている場合、eventのdata
属性を、内容がArrayBuffer
である新しい読み取り専用のdata
オブジェクトに初期化します。
「どのタイプが欲しいかをどうやって見分けるのですか?」
WebSocketフレーム内のデータのタイプは、送信者によって決定されるため( 1.2 を参照)、受信者が設定することはできません。テキストデータが送信される場合、e.data
のタイプはstring
です。バイナリデータが送信される場合、e.data
は、受信者によって設定されたws.binaryType
プロパティの値に応じて、ArrayBuffer
またはBlob
のいずれかのインスタンスになります。
「または、どのタイプを取得したかをどうやって知ることができますか?」
これはすでにpimvdbによって回答されています。