WebSocket: message 事件

Baseline 已广泛支持

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

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

当通过 WebSocket 接收到数据时,会触发 message 事件。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("message", (event) => { })

onmessage = (event) => { }

事件类型

一个 MessageEvent。继承自 Event

Event MessageEvent

事件属性

除了下面列出的属性之外,父接口 Event 的属性也可使用。

data 只读

由消息发送者发送的数据。此属性的类型取决于 WebSocket 消息的类型以及 WebSocket.binaryType 的值。

  • 如果消息类型是“text”,则此字段是字符串。
  • 如果消息类型是“binary”,则此属性的类型可以从该套接字的 binaryType 推断出来。
    • 如果 binaryType"arraybuffer",则为 ArrayBuffer
    • 如果 binaryType"blob",则为 Blob。此项没有关联的媒体类型(Blob.type"")。
origin 只读

一个字符串,表示消息发送者的源。

MessageEvent 接口的其他属性也存在,但与 WebSocket API 无关,并保持其默认值。

示例

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

// Listen for messages
socket.addEventListener("message", (event) => {
  console.log("Message from server ", event.data);
});

规范

规范
WebSocket
# dom-websocket-onmessage

浏览器兼容性

另见