springboot sse
时间: 2023-07-17 10:03:22 浏览: 109
Spring Boot SSE (Server-Sent Events) 是一种服务器推送技术,用于实时地向客户端推送数据。它基于HTTP协议,通过长连接实现从服务器到客户端的单向数据传输。
在 Spring Boot 中使用 SSE,你需要遵循以下步骤:
1. 添加依赖:在 Maven 或 Gradle 构建文件中添加对 Spring Web 和 Jackson 的依赖。
2. 创建一个控制器类:将控制器类标记为 `@RestController`,并在该类中定义一个返回 `SseEmitter` 对象的方法。
```java
@RestController
public class SSEController {
@GetMapping("/sse")
public SseEmitter sseEmitter() {
SseEmitter emitter = new SseEmitter();
// 设置超时时间、错误处理等
return emitter;
}
// 在其他地方触发数据发送
}
```
3. 在 `SseEmitter` 对象中设置超时时间、错误处理等。
```java
emitter.setTimeout(0L); // 设置永不超时
emitter.onError((Throwable t) -> {
// 处理错误
});
```
4. 在需要的时候触发数据发送。
```java
@GetMapping("/trigger")
public void trigger() {
// 获取 SseEmitter 对象
SseEmitter emitter = // ...
try {
// 发送数据
emitter.send("Data 1");
emitter.send("Data 2");
// ...
} catch (Exception e) {
// 处理异常
} finally {
// 完成发送,关闭连接
emitter.complete();
}
}
``
阅读全文