WebSocket: close() 方法

基线 广泛可用

此功能已十分成熟,可在许多设备和浏览器版本中使用。自 2015 年 7 月.

**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 使用 2 到 4 个字节 来编码任何非 ASCII 字符,因此包含非 ASCII 字符的 123 个字符的 reason 值将超过 123 字节的限制。

如果您指定了 reason 值,则还应指定 code 值。

返回值

无 (undefined).

异常

InvalidAccessError DOMException

如果 code 不是等于 1000 的整数,也不是 3000-4999 范围内的整数,则抛出此异常。

SyntaxError DOMException

如果 UTF-8 编码的 reason 值超过 123 个字节,则抛出此异常。

规范

规范
WebSockets 标准
# ref-for-dom-websocket-close①

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅