后端岗位面试题更新 2026-08-05

请结合 AI 万能视频下载总结器项目,说明服务端是如何实现 SSE 流式传输的?

后端开发系统设计技术原理问题排查

考察说明

考查候选人对 SSE 协议原理及在项目中的实际落地实现的理解。

回答思路

  1. 【回答框架 1】SSE 即 Server-Sent Events,基于 HTTP 长连接,服务端单向推送文本事件到客户端。实现时客户端通过 EventSource 接口发起请求,服务端设置响应头 Content-Type 为 text/event-stream,并关闭缓存,保持连接不关闭。
  2. 【回答框架 2】在项目中,当用户请求视频总结时,后端在处理过程中将生成的文本片段按事件格式写入响应流,每条事件以 data: 开头,以两个换行符结束,可携带 event 和 id 字段。通过循环或异步任务持续推送,直到总结完成。
  3. 【回答框架 3】服务端需处理连接断开检测,通过监听连接关闭事件或定期发送注释行保持心跳,避免代理超时。同时考虑并发控制,限制同时处理的 SSE 连接数,防止资源耗尽。
  4. 【回答框架 4】对于流式传输的可靠性,需在客户端处理断线重连,EventSource 自动重连,服务端需支持从上次事件 id 续传,避免重复或丢失数据。
  5. 【关键点 1】SSE 基于 HTTP,单向服务端推送,使用 text/event-stream 内容类型。
  6. 【关键点 2】事件格式为 data: 内容加两个换行,可含 event 和 id 字段。
  7. 【关键点 3】需设置 Cache-Control: no-cache 并保持连接,通过心跳或注释行维持活跃。
  8. 【关键点 4】客户端使用 EventSource 自动重连,服务端支持 Last-Event-ID 续传。