WebSocket

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

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

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

WebSocket 物件提供了建立和管理到伺服器的 WebSocket 連線以及在連線上傳輸和接收資料的 API。

要構造一個 WebSocket,請使用 WebSocket() 建構函式。

注意: WebSocket API 沒有應用 背壓 的方法。因此,當訊息到達速度快於應用程式處理速度時,應用程式將透過緩衝這些訊息而耗盡裝置的記憶體,或者由於 CPU 使用率達到 100% 而變得無響應,或者兩者兼而有之。對於自動提供背壓的替代方案,請參閱 WebSocketStream

EventTarget WebSocket

建構函式

WebSocket()

返回一個新建立的 WebSocket 物件。

例項屬性

WebSocket.binaryType

連線使用的二進位制資料型別。

WebSocket.bufferedAmount 只讀

已排隊資料的位元組數。

WebSocket.extensions 只讀

伺服器選擇的擴充套件。

WebSocket.protocol 只讀

伺服器選擇的子協議。

WebSocket.readyState 只讀

連線的當前狀態。

WebSocket.url 只讀

WebSocket 的絕對 URL。

例項方法

WebSocket.close()

關閉連線。

WebSocket.send()

將資料加入佇列以進行傳輸。

事件

使用 addEventListener() 或透過將事件監聽器分配給此介面的 oneventname 屬性來監聽這些事件。

close

當與 WebSocket 的連線關閉時觸發。也可透過 onclose 屬性訪問。

error

當與 WebSocket 的連線因錯誤而關閉時觸發,例如傳送某些資料失敗。也可透過 onerror 屬性訪問。

message

透過 WebSocket 接收到資料時觸發。也可透過 onmessage 屬性訪問。

open

WebSocket 的連線開啟時觸發。也可透過 onopen 屬性訪問。

示例

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

// Connection opened
socket.addEventListener("open", (event) => {
  socket.send("Hello Server!");
});

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

規範

規範
WebSocket
# the-websocket-interface

瀏覽器相容性

另見