用途:构建可扩展的 WebSocket 服务器,实现实时双向通信。适用于聊天、实时仪表盘、协同编辑等场景。
主要能力:支持 ws、Socket.IO 或框架原生 WebSocket;在 HTTP 升级阶段用 JWT 或会话鉴权;维护活跃连接注册表(含用户 ID、订阅频道、连接时间);用 JSON 信封(type、channel、payload、correlationId)定义消息协议;实现房间/频道加入与离开及成员跟踪;可配置心跳 ping/pong(默认 30 秒)清理失效连接;通过 Redis 发布/订阅适配器实现多实例广播的横向扩展。
必要条件:Node.js 18+ 配 ws 或 socket.io,或 Python 3.10+ 配 websockets 或 FastAPI WebSocket,或 Go 配 gorilla/websocket;Redis(横向扩展用);负载均衡需支持 WebSocket 升级(粘性会话或正确转发 Upgrade 头);握手鉴权用的 JWT 或会话;监控活跃连接数与消息吞吐。
关键用法:先用 Read、Grep 检查现有 HTTP 服务器与升级接入点;创建挂载于现有 HTTP 服务器的实例并配置升级路径(如 /ws、/socket.io)与允许来源;在 upgrade 事件中校验令牌;建立连接注册表;实现房间订阅;加入心跳与超时检测;配置 Redis 适配器;编写覆盖连接、鉴权、订阅、消息、重连、断开的测试。
错误处理:升级返回 401(令牌缺失/过期,在协议切换前拒绝);1008 策略违规(格式错误或违反协议,发送 1008 关闭帧并记录);1006 异常关闭(心跳超时检测并清理注册表);内存泄漏(每 60 秒清理扫描并限制单服务器最大连接数);消息风暴(按连接限速,滥用则断开)。
限制:具体框架、部署细节与更多示例以 ${CLAUDE_SKILL_DIR}/references/ 下的文档为准;Skill 提供的 URL 与参考链接需自行核实。