概览
系统提供两个 WebSocket 端点:| 端点 | 用途 | 方向 |
|---|---|---|
/api/chat/ws | 实时聊天 | 双向 |
/api/notifications/ws | 通知推送 | 服务端 → 客户端 |
聊天 WebSocket
连接
客户端发送
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
content | string | 是 | 消息文本 |
image_urls | string[] | 否 | 图片 URL 列表 |
服务端响应
| 字段 | 类型 | 说明 |
|---|---|---|
ok | bool | 处理是否成功 |
responses | string[] | 回复文本数组 |
内部消息格式
服务端将 WebSocket 消息标准化为UnifiedMessage:
通知 WebSocket
连接
工作模式
- 单向推送:服务端主动向客户端发送通知,客户端只需保持连接
- 心跳:客户端通过
receive_text()保持连接存活 - 多连接:同一用户可同时打开多个连接,所有连接都会收到通知
推送消息格式
NotificationHub 架构
SSE 流式输出
除 WebSocket 外,HTTP 端点也支持 SSE(Server-Sent Events)流式输出:text/event-stream,逐块推送 Agent 输出。
错误处理
| 场景 | 行为 |
|---|---|
| JWT 无效 | 连接时立即关闭,HTTP 状态码 403 |
| 消息格式错误 | 返回 {"ok": false, "error": "..."} |
| 服务端异常 | 返回错误消息后保持连接 |
| 客户端断开 | 自动从 NotificationHub 清理 |