RTCDataChannel: binaryType 屬性

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

* 此特性的某些部分可能存在不同級別的支援。

RTCDataChannel 介面上的 binaryType 屬性是一個字串,它指定了用於表示在 RTCDataChannel 上接收到的二進位制資料的物件型別。WebSocket.binaryType 屬性允許的值在這裡也同樣適用:如果正在使用 Blob 物件,則為 blob;如果正在使用 ArrayBuffer 物件,則為 arraybuffer。預設值為 arraybuffer

當在資料通道上收到二進位制訊息時,生成的 message 事件的 MessageEvent.data 屬性是一個由 binaryType 指定型別的物件。

一個可以具有以下值的字串

"blob"

收到的二進位制訊息的內容將包含在 Blob 物件中。

"arraybuffer"

收到的二進位制訊息的內容將包含在 ArrayBuffer 物件中。

示例

此程式碼配置了一個數據通道以在 ArrayBuffer 物件中接收二進位制資料,併為 message 事件建立監聽器,該監聽器將收到的資料表示為十六進位制位元組值列表的字串。

js
const dc = peerConnection.createDataChannel("Binary");
dc.binaryType = "arraybuffer";

dc.onmessage = (event) => {
  const byteArray = new Uint8Array(event.data);
  let hexString = "";

  byteArray.forEach((byte) => {
    hexString += `${byte.toString(16)} `;
  });
};

規範

規範
WebRTC:瀏覽器中的即時通訊
# dom-datachannel-binarytype

瀏覽器相容性

另見