WebSocket: close() 方法

Baseline 已廣泛支援

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

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

WebSocket.close() 方法用於關閉 WebSocket 連線或嘗試建立的連線(如果存在)。如果連線已處於 CLOSED 狀態,則此方法不執行任何操作。

注意: 關閉連線的過程始於 關閉握手close() 方法在開始關閉握手之前不會丟棄先前傳送的訊息;即使使用者代理仍在忙於傳送這些訊息,握手也僅在訊息傳送完成後才會開始。

語法

js
close()
close(code)
close(code, reason)

引數

code 可選

一個表示連線關閉原因的整數 WebSocket 連線關閉碼 值。

  • 如果未指定,則連線的關閉碼將自動設定:對於正常關閉,設定為 1000;否則,設定為 介於 1001-1015 之間的另一個標準值,以指示連線實際關閉的原因。
  • 如果指定了 code 引數,其值將覆蓋連線關閉碼的自動設定,並設定一個自定義程式碼。該值必須是一個整數:要麼是 1000,要麼是您選擇的介於 3000-4999 之間的自定義程式碼。如果您指定了 code 值,您也應該指定一個 reason 值。
reason 可選

一個字串,提供一個自定義的 WebSocket 連線關閉原因(一個簡明的、人類可讀的對關閉的文字解釋)。該值不能超過 123 位元組(UTF-8 編碼)。

注意: 由於 UTF-8 編碼任何非 ASCII 字元需要兩到四個位元組,因此一個包含非 ASCII 字元的 123 個字元的 reason 值將超過 123 位元組的限制。

如果您指定了 reason 值,您也應該指定一個 code 值。

返回值

無(undefined)。

異常

InvalidAccessError DOMException

如果 code 既不是等於 1000 的整數,也不是介於 30004999 之間的整數,則丟擲此異常。

SyntaxError DOMException

如果 UTF-8 編碼的 reason 值長度超過 123 位元組,則丟擲此異常。

規範

規範
WebSocket
# dom-websocket-close

瀏覽器相容性

另見