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

瀏覽器相容性

另見