酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Java 实战:利用 SseEmitter 实现服务器端推送 Server-Sent Events

SseEmitter 是 Spring Framework 中的一个类,用于实现服务器端发送 Server-Sent Events(SSE)的功能。SSE 是一种用于实现服务器端推送数据给客户端的机制,通常用于实时更新数据。 下面是一个简单的示例,演示如何在 Java 中使用 SseEmitter: ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import java.io.IOException; @RestController public class SseController { @GetMapping("/events") public SseEmitter handleEvents() { SseEmitter emitter = new SseEmitter(); new Thread(() -> { try { for (int i = 0; i < 10; i++) { emitter.send("Event " + i); Thread.sleep(1000); } emitter.complete(); } catch (IOException | InterruptedException e) { emitter.completeWithError(e); } }).start(); return emitter; } } ``` 在这个示例中,我们创建了一个 `/events` 接口,调用这个接口时会创建一个 SseEmitter 对象,并通过线程发送多个事件给客户端。客户端可以通过监听这个接口来接收服务器端推送的事件。 需要注意的是,SseEmitter 对象在响应完成后需要手动关闭,否则可能会导致资源泄露。通常在触发完所有事件后调用 `emitter.complete()` 来关闭 SseEmitter。 这只是一个简单的示例,实际使用中可以根据需求进行扩展和定制。 ######[AI写代码神器 | 958点数解答 | 2024-10-31 16:16:01]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]