Get to know MDN better
此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。
備註: 此功能可在 Web Worker 中使用。
WebSocket API 讓使用者瀏覽器與伺服器之間可以開啟雙向互動的通訊會話。使用此 API,你可以傳送訊息到伺服器並接收回應,而無需輪詢伺服器以取得回覆。
WebSocket API 提供了兩種建立和使用 Web Socket 連線的替代機制:WebSocket 介面和 WebSocketStream 介面。
此外,WebTransport API 預計將在許多應用程式中取代 WebSocket API。WebTransport 是一個多功能、低階的 API,它提供了背壓和許多 WebSocket 或 WebSocketStream 都不支援的功能,例如單向串流、亂序傳遞,以及透過資料包進行的不可靠資料傳輸。WebTransport 的使用比 WebSockets 更複雜,其跨瀏覽器支援也不那麼廣泛,但它能夠實現複雜的解決方案。如果標準的 WebSocket 連線很適合你的使用案例,並且你需要廣泛的瀏覽器相容性,你應該使用 WebSockets API 來快速上手。然而,如果你的應用程式需要非標準的自訂解決方案,那麼你應該使用 WebTransport API。
備註:如果頁面有一個開啟的 WebSocket 連線,瀏覽器可能不會將其加入 bfcache。因此,當使用者結束使用頁面時,關閉連線是一個好的做法。參見使用 bfcache。
用於連線到 WebSocket 伺服器,然後在連線上傳送和接收資料的主要介面。
WebSocketStream基於 Promise 的介面,用於連線到 WebSocket 伺服器;使用串流在連線上傳送和接收資料。
CloseEvent當連線關閉時,由 WebSocket 物件傳送的事件。
MessageEvent當從伺服器接收到訊息時,由 WebSocket 物件傳送的事件。
HTTP 標頭用於 WebSocket 交握中:
Sec-WebSocket-Key一個 HTTP 請求標頭,包含來自用戶端的 nonce。這在 WebSocket 開啟交握 中用來驗證用戶端明確打算開啟一個 WebSocket。它由瀏覽器自動新增。
Sec-WebSocket-Accept一個 HTTP 回應標頭,用於 WebSocket 開啟交握 中,表示伺服器願意升級到 WebSocket 連線。指令中的值是根據對應請求中 Sec-WebSocket-Key 的值計算出來的。
Sec-WebSocket-Version一個 HTTP 標頭,在請求中表示用戶端所理解的 WebSocket 協定版本。在回應中,只有當伺服器不支援所請求的協定版本時才會傳送此標頭,並列出伺服器支援的版本。
Sec-WebSocket-Protocol一個 HTTP 標頭,在請求中按偏好順序表示用戶端支援的子協定。在回應中,它表示伺服器從用戶端的偏好中選擇的子協定。
Sec-WebSocket-Extensions一個 HTTP 標頭,在請求中按偏好順序表示用戶端支援的 WebSocket 擴充功能。在回應中,它表示伺服器從用戶端的偏好中選擇的擴充功能。
| WebSockets # the-websocket-interface |
Enable JavaScript to view this browser compatibility table.
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2026年1月16日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.