症状
WebSocket 客户端以关闭码 1001 going away 断开,常按固定节奏或在部署前后出现。该码表示某端点有意关闭连接,指向服务器重启、部署期间的 drain,或代理在超时后关闭了空闲连接。与异常关闭不同,1001 通常能在日志或配置中找到有意为之的原因。
诊断
把关闭时间与重启、部署日志对齐;检查代理的读写超时;加入短于最小空闲超时的保活 ping。
journalctl --since "10 min ago" | grep -i "shutdown\|restart"
根因
连接被以 going-away 码关闭,因为服务器、代理或编排器有意结束它,或为重启,或因其空闲超过超时。
修复
发送短于最小空闲超时的保活 ping;按需提高代理超时;实现带退避的客户端重连并让服务端优雅 drain,使部署只造成短暂中断。
验证
跨一次部署与一段空闲期观察连接,确认其保持或迅速重连且不丢消息。会话稳定或快速恢复即证明修复。
常见陷阱
盲目提高所有超时而不加保活会让中间层继续回收空闲连接;应两者配合。