PLAN.md 1.2 KB

OPT-02: 轮询超时修复(WebSocket 推送)

任务目标

后端实现 WebSocket 推送 audio_generation_completevideo_generation_complete 事件,替代前端 30s 超时限制。

涉及文件

  • 新建: server/src/services/websocket.service.ts - WebSocket 服务
  • 修改: server/src/modules/tts/tts.service.ts - 音频生成完成后推送
  • 修改: server/src/modules/video-generator/video-generator.service.ts - 视频生成完成后推送
  • 修改: server/src/app.ts - 挂载 WebSocket 服务

WebSocket 事件格式(按 api-contracts.md)

// audio_generation_complete
{ bookId: string, chapterId: number, status: 'completed' | 'failed' }

// video_generation_complete
{ bookId: string, chapterId: number, status: 'completed' | 'failed' }

实现步骤

  1. 创建 WebSocket 服务(基于 ws 库)
  2. 在 app.ts 中挂载 WebSocket 到 /ws 路径
  3. TTS 回调完成后通过 WebSocket 推送事件
  4. 视频生成完成后通过 WebSocket 推送事件

状态

  • 创建 WebSocket 服务
  • 在 app.ts 挂载 WebSocket
  • TTS 完成后推送 audio_generation_complete
  • 视频生成完成后推送 video_generation_complete
  • 更新 api-contracts.md(如需要)