SSE 是服务器单向持续推送数据的轻量级 HTTP 机制。基于长连接,服务器保持响应打开并按 data: 格式写入,客户端用 EventSource 监听;需设置 text/event-stream 响应头、正确换行,支持自动重连与自定义事件。

JavaScript 服务器推送(Server-Sent Events,SSE)是一种让服务器**单向、持续地向浏览器发送数据**的轻量级机制。它不是双向通信(不像 WebSocket),也不依赖轮询(不像传统 AJAX 轮询),而是基于 HTTP 的长连接,由服务器主动“推”数据给客户端。
Server-Sent Events 的核心原理
SSE 基于一个持久的 HTTP 连接:浏览器发起一次 GET 请求,服务器保持连接打开,并在有新数据时,按特定格式逐条写入响应流。浏览器内置的 EventSource API 自动解析这些数据,触发事件。
关键点:
- 协议是纯文本,每条消息以 data: 开头,可选带 id:(用于断线重连)、event:(自定义事件名)、retry:(重连间隔毫秒)
- 服务器必须设置响应头:Content-Type: text/event-stream 和 Cache-Control: no-cache
- 连接默认在断开后自动重试(约 3 秒),支持手动关闭
- 只支持服务器 → 浏览器方向,适合实时通知、日志流、股票行情等场景
前端怎么用 EventSource?
只需创建 EventSource 实例,监听事件即可:
立即学习“Java免费学习笔记(深入)”;
标签: javascript java js 前端 node.js ajax node cookie 浏览器 app acces
还木有评论哦,快来抢沙发吧~