此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

WebSocket:close() 方法

基线 广泛可用

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

备注: 此特性在 Web Worker 中可用。

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 字节,则抛出。

规范

规范
WebSockets
# dom-websocket-close

浏览器兼容性

参见