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。 这只是一个简单的示例,实际使用中可以根据需求进行扩展和定制。 [2024-10-31 16:16:01 | AI写代码神器 | 958点数解答]