题目
Agent 应用中,SSE 与 WebSocket 分别适用于什么交互场景?
答案
SSE 适合服务端持续向浏览器推送文本片段和任务进度,用户输入可以通过普通 HTTP 请求提交。对于常见的“提问一次,逐步返回答案”,结构比较简单。 WebSocket 支持双向持续通信,适合频繁交互、实时语音或多方协作,但应用需要自己设计心跳、重连、消息确认和会话恢复。 浏览器原生 EventSource 具有重连能力,但请求方式和自定义请求头受到限制;需要 POST 或特定认证头时,可以使用 Fetch 读取响应流并自行处理协议与重连。 两者都不自动保证事件持久化或任务只执行一次。选择时还要考虑网关支持、连接数量、代理超时和后端资源占用。任务执行最好与前端连接分离,断网后仍能查询真实进度。 ![SSE 与 WebSocket 的交互方向](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/question/agent-development/extra-sse-websocket-db1d41617797c08d.png) 参考:[MDN:使用 SSE](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)。