用途:构建可扩展的实时 WebSocket 通信系统,覆盖服务端与客户端两侧实现,适合聊天系统等需要实时消息推送的场景。主要能力:服务端基于 Socket.IO 建立连接并做认证(在握手阶段校验 token),维护用户与 socket 映射,支持 join-room 加入房间、按房间广播消息、定向推送(用户私有房间 user:<id>、房间 room:<id>、按 socketId 单发);通过 @socket.io/redis-adapter 与 redis 客户端实现 Redis 适配器以支持横向扩展。客户端提供断线重连配置(reconnection、reconnectionDelay、reconnectionAttempts)、连接状态与消息监听、离线消息队列及重连后 flushQueue 补发。另含 React Hook useWebSocket 与消息协议(type 为 message/typing/presence)。用法要点:安装并引入 socket.io、@socket.io/redis-adapter、redis;服务端 connect 前用 io.use 校验 token,连接后注册 join-room 与 message 事件;客户端通过 io(url,{auth:{token}}) 连接;可用 ack 回调确认投递。扩展建议按连接数分层:<10K 单服务器,10K–100K 使用 Redis pub/sub,>100K 使用分片 Redis 加负载均衡。运维上提供 /api/ws/stats 与 /api/ws/health 端点查看活动连接、房间与内存等指标。最佳实践包括操作前认证、指数退避重连、心跳保活、重要消息落库、监控连接数、消息限流与错误处理;应避免明文传输敏感数据、无限制内存存消息、跳过房间授权、忽略错误、无限订阅与不清理断连数据。限制:资料未提供具体价格、支持平台与部署细节,需自行结合环境验证;Python aiohttp 与 FastAPI 实现见 references/python-websocket.md。
websocket-implementation
智能体与模型
更新于 10-15 21:04