1000 api protocol_error ai_generated true

WebSocket 关闭代码 1000:正常关闭

WebSocket close code 1000: Normal Closure

ID: api/websocket-connection-closed-with-code-1000

其他格式: JSON · Markdown 中文 · English
75%修复率
80%置信度
1证据数
2023-11-10首次发现

版本兼容性

版本状态引入弃用备注
WebSocket RFC 6455 active
Node.js ws library v8.x active
Python websockets v10.x active

根因分析

WebSocket 连接被客户端或服务器正常关闭,通常是由于超时、空闲超时或显式关闭。

English

The WebSocket connection was closed normally by either the client or server, often due to a timeout, idle timeout, or explicit close.

generic

官方文档

https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent

解决方案

  1. 实现带指数退避的自动重连。示例 (JavaScript):function connect() { const ws = new WebSocket('wss://example.com/socket'); ws.onclose = (event) => { if (event.code === 1000) { setTimeout(connect, 1000); } }; }
  2. 发送定期的 WebSocket ping/pong 帧以保持连接活跃,避免空闲超时。示例 (Node.js):ws.ping(); setInterval(() => ws.ping(), 30000);

无效尝试

常见但无效的做法:

  1. 60% 失败

    Reconnecting immediately without investigating the reason for closure may lead to repeated disconnections if the server enforces a rate limit or idle timeout.

  2. 30% 失败

    Disabling WebSocket compression or other features incorrectly may not prevent normal closure due to server-side policies.