CloseEvent: code 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

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

CloseEvent 接口的只读属性 code 返回一个 WebSocket 连接关闭代码,指示连接关闭的原因。

一个整数 WebSocket 连接关闭代码,范围在 1000 - 4999 之间,指示连接关闭的原因。

状态码 含义 描述
0999 未使用。
1000 正常关闭 连接已成功完成其创建的目的。
1001 即将离开 端点即将离开,可能是因为服务器故障,或者浏览器正在离开打开连接的页面。
1002 协议错误 端点因协议错误而终止连接。
1003 不支持的数据 端点正在终止连接,因为它收到了无法接受的数据类型。(例如,一个仅文本的端点收到了二进制数据。)
1004 保留 保留。 含义可能在将来定义。
1005 未收到状态 保留。 表明未提供状态码,即使期望提供。
1006 异常关闭 保留。 表明连接异常关闭(即,未发送关闭帧),当期望提供状态码时。
1007 无效帧有效载荷数据 端点正在终止连接,因为它收到了包含不一致数据(例如,文本消息中的非 UTF-8 数据)的消息。
1008 策略违规 端点正在终止连接,因为它收到了违反其策略的消息。这是一个通用状态码,在代码 1003 和 1009 不适用时使用。
1009 消息过大 端点正在终止连接,因为它收到了过大的数据帧。
1010 强制扩展 客户端正在终止连接,因为它期望服务器协商一个或多个扩展,但服务器未这样做。
1011 内部错误 服务器正在终止连接,因为它遇到了意外情况,阻止其满足请求。
1012 服务重启 服务器正在终止连接,因为它正在重启。
1013 稍后重试 服务器因临时原因终止连接,例如,服务器过载并正在断开部分客户端。
1014 错误的网关 服务器充当了网关或代理,但从上游服务器收到了无效响应。这类似于 502 HTTP 状态码。
1015 TLS 握手 保留。 表明连接因 TLS 握手失败而关闭(例如,服务器证书无法验证)。
10162999 用于 WebSocket 协议规范的未来修订版本以及扩展规范的定义。
30003999 供库、框架和应用程序使用。这些状态码 直接在 IANA 注册。WebSocket 协议未定义这些代码的解释。
40004999 供私人使用,因此无法注册。此类代码可通过 WebSocket 应用程序之间的预先约定使用。WebSocket 协议未定义这些代码的解释。

示例

以下示例将 code 的值打印到控制台。

js
WebSocket.onclose = (event) => {
  console.log(event.code);
};

规范

规范
WebSocket
# ref-for-dom-closeevent-code②

浏览器兼容性

另见