springboot整合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 {
// 模拟发送数据
emitter.send("data: 这是一条服务器发送的消息\n\n");
// 可以继续发送更多消息...
// 完成发送
emitter.complete();
} catch (Exception e) {
// 发送失败处理
emitter.completeWithError(e);
}
}).start();
return emitter;
}
}
这段代码展示了如何在Spring Boot应用中使用SseEmitter来创建一个服务器发送事件(SSE)的服务端点。通过发送data
事件,我们可以向客户端推送消息。在实际应用中,你可以替换发送的数据为实时更新或者其他需要推送给客户端的信息。
评论已关闭