SSE(Server-Sent Events)是一种浏览器通过 EventSource API 从服务器持续接收事件的 HTTP 单向 流式传输 机制。
它把服务器响应保持打开,并以 text/event-stream 格式持续发送文本事件。浏览器原生支持自动重连和事件分发,因此它常用于通知、状态更新、日志输出、任务进度和 LLM token 流式返回。
核心概念
- 单向推送:服务器主动向客户端发送事件,客户端仍通过普通 HTTP 请求发送上行数据。
- 浏览器原生 API:前端通常用 EventSource 建立连接和监听事件。
- HTTP 友好:更容易穿过代理、网关和常规 HTTP 基础设施。
与 WebSocket 的区别
WebSocket 是双向消息通道,适合交互密集场景;SSE 是服务器到客户端的事件流,模型更简单,通常比 长轮询 更自然,也比 WebSocket 更容易接入普通 HTTP 服务。