# OPT-02: 轮询超时修复(WebSocket 推送) ## 任务目标 后端实现 WebSocket 推送 `audio_generation_complete`、`video_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) ```typescript // 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 推送事件 ## 状态 - [x] 创建 WebSocket 服务 - [ ] 在 app.ts 挂载 WebSocket - [ ] TTS 完成后推送 audio_generation_complete - [ ] 视频生成完成后推送 video_generation_complete - [ ] 更新 api-contracts.md(如需要)