WebSocket 1006 不会告诉你是哪一跳断了
把异常的 WebSocket 关闭读作缺少 Close 握手的证据,然后判断是代理配置失败,还是已经建立的会话失败。
WebSocket 代码 1006 表示在没有预期 Close 帧的情况下发生了异常关闭。该代码是保留的:端点不得在 WebSocket Close 帧中把 1006 当作状态发送。在 API 事件中看到它,并不是服务器在指明代理就是原因。
如果连接从未打开
按顺序检查建立过程:连接代理、代理协商、WSS 的目标 TLS,然后是 WebSocket 打开握手。代理质询或隧道拒绝都可能让流程停在 WebSocket 阶段之前。
如果已经打开并传输过消息
记录可用时长以及关闭前发生了什么。传输中断、应用关闭和中间设备的策略,都可能让接收方没有得到干净的关闭交换。
保留端点、会话标识、最后一次活动,以及是否观察到正常的 Close 帧。把你控制的日志与浏览器或库的网络错误对照。仅凭事件代码无法判定是运营商、代理服务商还是应用服务器造成的。
通过同一代理访问的普通 HTTPS 页面只验证一次短交互,不代表这个会话的寿命。更换线路时保持浏览器状态和应用代码不变;否则一次成功的重试很难解释。
修复证据支持的边界。代理认证、TLS 信任和应用重连是彼此独立的工作,调大所有超时并不能让 1006 指出其中任何一个。