请解释 SseEmitter 的核心作用,并描述在服务端如何借助 SseEmitter 将 AI 模型的输出以流式方式推送给前端?
考察说明
考查对 SSE 机制及 SseEmitter 在流式响应中应用的理解。
回答思路
- 【回答框架 1】SseEmitter 是 Spring MVC 提供的用于服务端向客户端推送事件(SSE)的类,基于 HTTP 长连接,支持文本数据单向实时推送。
- 【回答框架 2】使用步骤:创建 SseEmitter 实例并设置超时;在控制器方法中返回该实例;通过独立线程或异步任务调用 send 方法发送数据,最后调用 complete 结束。
- 【回答框架 3】实现 AI 流式响应时,可将大模型返回的增量文本通过 SseEmitter 逐块发送,前端使用 EventSource 或 fetch 读取流,实现打字机效果。
- 【回答框架 4】需注意连接管理、超时设置、错误处理及线程资源释放,避免资源泄漏。
- 【关键点 1】SseEmitter 实现服务器到客户端的单向实时通信。
- 【关键点 2】返回 SseEmitter 后,通过 send 发送数据,complete 结束。
- 【关键点 3】AI 流式响应中,将模型输出分块发送,提升用户体验。
- 【易错点 1】默认超时可能导致连接提前关闭,需合理设置。
- 【易错点 2】需在异步线程中发送数据,避免阻塞请求线程。
- 【易错点 3】未及时调用 complete 或未处理异常会造成资源泄漏。