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

浏览器兼容性

另见