技术分享
Server-Sent Events (SSE) 简介
00 分钟
2023-6-15
2025-1-16
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