服务器发送事件 (SSE)

服务器发送事件 (Server-Sent Events) 允许服务器向客户端推送更新,而无需客户端轮询。客户端发送一个带有 Accept: text/event-stream 参数的 GET 请求;服务器保持响应打开状态,并在事件发生时将其写入服务器,每个事件以几行文本的形式呈现,并可选地包含 id 和 event 字段。浏览器通过 EventSource API 公开此功能。

工作原理

每个事件都是数据:一行行数据后跟一个空行。如果连接断开,EventSource 会自动重新连接,并在 Last-Event-ID 标头中发送它接收到的最后一个事件的 ID,以便服务器可以从那里无缝恢复。服务器会定期发送注释行作为心跳信号,以防止代理关闭空闲连接。

误解

WebSocket 始终是更佳选择。SSE 本质上是 HTTP,它可以绕过阻止 WebSocket 升级的代理和负载均衡器,无需特殊服务器,并且内置断点续连功能。对于服务器到客户端的更新,例如通知、进度和动态消息,它通常是更简单的工具。

点击这里试试

GET /streams/v1/events以 JSON 格式返回答案,或者使用 Accept: text/event-stream 作为事件流返回答案;发送 Last-Event-ID 以在给定事件后恢复,并 POST /streams/v1/events以发布事件。

资料来源

其他术语

阅读英文版

所有术语 · 测试技巧 · 全部 39 个模拟 REST API

最后更新时间