开源工具 Spectrayan,让 Spring Boot 用 SSE 做实时推送变得贼简单。
SSE(Server-Sent Events)就是服务器主动往浏览器推消息。它基于 HTTP,比 WebSocket 轻量,特别适合新闻和通知这类单向推送场景。
引入依赖就能自动创建端点。按主题发消息、断线重连、心跳保活全自带。
Angular 项目直接接入。类型安全,断线会自动重试,还能优化性能。
加了 Redis 或 Kafka 等中间件。不同服务实例之间也能互相转发消息。
▲ Spectrayan 内部架构:从 SseEmitter 到 Bridge 的完整链路
下图是 Postman 连上 GET /sse/my-topic 端点后的实测,连接保持 1 小时 31 分钟仍在持续推送,客户端能看到每条心跳和业务消息依次到达:
▲ Postman 实测:1h31m 连接保活,心跳与业务消息按序到达
适用:新闻 Feed、通知中心、订单状态推送、日志流、监控告警。
不适用:双向通信(聊天、游戏)、高频率双向同步 —— 这些场景用 WebSocket 更合适。
说白了,这套方案主打一个"零代码"——服务端自动建端点、客户端断线自连、多实例自动转发,把 SSE 该有的"麻烦事"全替你解决了。