问题域/PD-314

WebSocket实时通信

WebSocket Real-time Streaming

WebSocket连接管理、消息队列化发送、多类型事件流式推送的实时通信系统

子问题

1.连接生命周期管理

2.消息队列防阻塞

3.多事件类型路由

4.断线重连处理

5.同步上下文中的异步 WebSocket 推送适配

6.单连接任务互斥与并发请求拒绝

各项目的解法1 solutions

Signals

横向对比

维度GPT-Researcher
连接管理WebSocketManager 连接池 + 每连接独立 asyncio.Queue + sender task
消息协议统一 JSON 格式 {type, content, output, metadata},6 种事件类型
推送架构stream_output 全局函数作唯一出口,73 处调用点统一格式
持久化策略CustomLogsHandler 双写:实时推 WebSocket + 追加写 JSON 文件
并发控制单连接单任务互斥,running_task.done() 检查拒绝并发请求
容错机制safe_send_json 分类异常处理 + MCPStreamer 同步/异步双模式降级

最佳实践

1.asyncio.Queue解耦消息生产和发送

2.CustomLogsHandler统一封装不同输出目标

3.stream_output 全局函数作为唯一推送入口确保 73 处调用格式一致

4.safe_send_json 对连接关闭和超时做分类日志而非抛异常

5.sender task + None 哨兵实现优雅关闭三步清理