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]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)436
- Minecraft 惊现序列化错误,关键参数无法传至客户端! (字节豆包 | 40点数解答 | 2024-12-03 19:10:57)311
- Minecraft服务器“forestry”模组序列化问题解决:代码示例与逻辑要点 (阿里通义 | 566点数解答 | 2024-12-03 19:11:41)314
- 表单提交失败:元素点击被拦截,这些解决办法你知道吗?(字节豆包 | 153点数解答 | 2024-11-11 21:55:28)252
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)335
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1229
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- Java 实战:利用 SseEmitter 实现服务器端推送 Server-Sent Events(GPT | 958点数解答 | 2024-10-31 16:16:01)202
- 优化高中英语核心词汇短语HTML页面,这些建议不容错过!(DeepSeek | 217点数解答 | 2025-07-01 23:41:02)207
- 数据库连接报错剖析:SSL 配置不匹配及解决攻略 (字节豆包 | 205点数解答 | 2024-09-04 19:14:42)367
- SQL Server 安全连接报错:服务器 TLS1.0 不被客户端 [TLS13, TLS12] 偏好接受 (字节豆包 | 149点数解答 | 2024-09-05 09:01:11)329
- ClickHouse 表只读模式错误:原因、解决方案及代码检查示例(DeepSeek | 404点数解答 | 2025-02-11 14:14:17)231