springboot集成sse
时间: 2025-02-18 17:21:07 浏览: 49
### Spring Boot 中集成 SSE (服务器发送事件)
在现代 Web 应用程序中,实时数据更新是一个常见的需求。通过使用 Server-Sent Events(SSE),可以实现从服务器到客户端的单向通信通道。这使得浏览器能够接收来自服务器的通知而无需轮询。
为了在 Spring Boot 项目中启用 SSE 功能,需要创建一个控制器来处理 HTTP 请求并返回 `text/event-stream` 类型的内容[^1]:
```java
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SseController {
@GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> streamEvents() {
return Flux.interval(Duration.ofSeconds(1))
.map(sequence -> "event-" + sequence);
}
}
```
上述代码片段展示了如何定义 RESTful API 来持续不断地向订阅者推送消息。这里利用了 Project Reactor 的 `Flux` 对象作为响应体的一部分,它允许异步流式传输多个元素给客户端[^2]。
对于前端部分,则可以通过 JavaScript 原生支持的方式轻松连接至该端点,并监听传入的消息:
```javascript
const eventSource = new EventSource('/stream');
eventSource.onmessage = function(event) {
console.log('New message:', event.data);
};
```
当建立好这种长链接之后,每当有新的通知产生时就会触发相应的回调函数,在控制台打印最新的信息[^3]。
阅读全文
相关推荐


















