Spring Boot 实战:巧用 SseEmitter 实现 SSE 单向实时通信及示例详解
SSE(Server-Sent Events)是一种用于在客户端和服务器之间实现单向实时通信的技术。Spring Boot 提供了一个方便的方式来实现 SSE,使用`SseEmitter`类。 下面是一个简单的示例代码,演示如何在 Spring Boot 中使用`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("/stream-data") public SseEmitter streamData() { SseEmitter emitter = new SseEmitter(); // 启动一个新线程模拟生成数据并向客户端发送 new Thread(() -> { try { for (int i = 0; i < 10; i++) { emitter.send(i); Thread.sleep(1000); // 每秒发送一次 } emitter.complete(); } catch (IOException | InterruptedException e) { emitter.completeWithError(e); } }).start(); return emitter; } } ``` 在上面的示例中,我们创建了一个`SseEmitter`对象,并在`streamData`方法中返回它。然后我们启动一个新线程,循环发送数据给客户端。调用`emitter.complete()`表示数据发送完成。 客户端可以通过访问`/stream-data`端点来接收数据流。接收到数据后,客户端可以在页面上实时展示数据。 需要注意的是,为了确保资源的释放,最好在`complete()`方法之后调用`SseEmitter`对象的`off()`方法,如下所示: ```java emitter.onCompletion(() -> { // 关闭资源 emitter.off(); }); ``` ######[AI写代码神器 | 1041点数解答 | 2024-10-31 16:13:12]
- IntelliJ IDEA 搭建 Spring Boot 项目:从创建到 JPA 实体类及数据源配置全攻略(讯飞星火 | 920点数解答 | 2024-10-31 15:37:22)277
- Maven POM文件开头元素详解及Spring Boot项目配置规范(DeepSeek | 1912点数解答 | 2026-04-23 16:43:34)15
- Spring Boot 与 Vue 联手:轻松实现微信扫码登录全攻略(字节豆包 | 207点数解答 | 2025-05-13 09:12:19)179
- Spring框架实战:从配置到实现,搞定员工信息查询功能(GPT | 2135点数解答 | 2024-06-12 08:32:35)325
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)53
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)371
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)251
- "Complete Guide to Implementing a VUMAT Subroutine in Fortran for FEM and Abaqus Material Models"(GPT | 2664点数解答 | 2024-08-17 10:19:58)214
- 超详细:使用Java 8创建连接MySQL数据库的Spring Boot项目全步骤( | 1491点数解答 | 2024-05-13 16:25:58)272
- IDEA搭建 Java 8 连接 MySQL 的 Spring Boot 项目全流程:从创建到测试( | 1985点数解答 | 2024-05-13 16:26:16)312
- 深度解析:Vue + Spring Boot 组合的应用优势与发展前景(字节豆包 | 587点数解答 | 2025-04-29 16:25:49)166
- 揭秘Spring Boot + Vue3前后端分离架构:从开发到安全的全方位技术优势(DeepSeek | 2255点数解答 | 2025-05-07 18:15:21)366