type
status
date
slug
summary
tags
category
icon
password
Server-Sent Events(SSE)是一种基于 HTTP 的服务器推送技术,允许服务器实时向客户端推送数据。与传统的 Ajax 轮询和 WebSockets 相比,SSE 具有以下优点:
- 轻量级:实现简单,资源占用少。
- 易于使用:API 设计直观,便于开发。
- 良好兼容性:广泛支持,适用于多种浏览器。
SSE 适合用于实时通知和数据展示等场景。
一、实现原理
SSE 使用 HTTP 长连接,服务器保持连接打开状态,不断向客户端发送数据。客户端通过 EventSource API 接收数据并进行处理。
示例代码
服务端(Node.js)
客户端(HTML)
注意事项
- 确保服务器和客户端的超时设置,以避免连接断开。
二、鉴权处理
在 SSE 中实现鉴权,可以确保只有经过身份验证的客户端才能接收数据。
示例代码(Node.js)
三、结合框架实现
Koa 框架
在 Koa 中实现 SSE,推荐使用
koa-sse
中间件。Nest 框架
在 Nest 中实现 SSE,可以使用
nestjs-sse
插件。模块配置
确保在 NestJS 模块中引入
SseModule
:- 作者:HRope
- 链接:https://hrope.cn/article/server-sent-events
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。