WebSocket: binaryType 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

WebSocket.binaryType 属性控制通过 WebSocket 连接接收的二进制数据的类型。

字符串

"blob"

对二进制数据使用 Blob 对象。这是默认值。

"arraybuffer"

对二进制数据使用 ArrayBuffer 对象。

示例

js
// Create WebSocket connection.
const socket = new WebSocket("ws://:8080");

// Change binary type from "blob" to "arraybuffer"
socket.binaryType = "arraybuffer";

// Listen for messages
socket.addEventListener("message", (event) => {
  if (event.data instanceof ArrayBuffer) {
    // binary frame
    const view = new DataView(event.data);
    console.log(view.getInt32(0));
  } else {
    // text frame
    console.log(event.data);
  }
});

规范

规范
WebSocket
# ref-for-dom-websocket-binarytype①

浏览器兼容性