Spring boot整合sse(使用详解)
Spring Boot整合SSE(Server-Sent Events)的方法如下:
- 添加依赖:确保你的
pom.xml
中包含Spring Web依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 创建SSE控制器:
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
@RestController
public class SseController {
@GetMapping(path = "/stream-sse", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public SseEmitter handleSse() {
SseEmitter emitter = new SseEmitter();
// 在新线程中发送事件
new Thread(() -> {
try {
for (int i = 0; i < 5; i++) {
emitter.send("data:" + i + "\n\n"); // 发送数据
Thread.sleep(1000); // 每秒发送一次
}
emitter.complete(); // 完成发送
} catch (Exception e) {
emitter.completeWithError(e); // 发送错误
}
}).start();
return emitter;
}
}
- 测试:启动Spring Boot应用,并通过浏览器或者使用curl命令行工具来测试SSE端点。
在浏览器中打开:
http://localhost:8080/stream-sse
使用curl测试:
curl -N http://localhost:8080/stream-sse
以上代码创建了一个简单的SSE服务,当客户端连接到/stream-sse
端点时,它会收到一系列数字,每秒更新一次。这只是SSE用法的简单示例,实际应用中可能需要更复杂的逻辑。
评论已关闭