什么是 SSE 流(Server-Sent Events)?原理、应用场景与 Node.js 示例
SSE 流(Server-Sent Events)是服务器通过一条保持打开的 HTTP 连接,持续向浏览器单向推送数据的方式。常用于 AI 打字式回答、实时日志、进度通知等。
它的数据格式通常是:
data: 你好
data: 世界每条消息以两个换行结尾。浏览器收到后立即处理,不必不断轮询接口。
// 前端:接收 SSE
const es = new EventSource("/api/stream");
es.onmessage = (event) => {
console.log(event.data);
};// Node.js / Express:发送 SSE
app.get("/api/stream", (req, res) => {
res.setHeader("Content-Type", "text/event-stream");
res.setHeader("Cache-Control", "no-cache");
res.write("data: 第一段内容\n\n");
setTimeout(() => {
res.write("data: 第二段内容\n\n");
res.end();
}, 1000);
});SSE 只能服务端 → 客户端;若需双向实时通信(如多人协作、实时游戏),通常使用 WebSocket。
暂无标签