d449abe966
与 web 端同因:生成期间普通 POST 零字节,会被 60s 空闲超时掐成 504。
- 新增 utils/chat-socket.js:地址统一拼 /api/chat/{userId}(网关只放行 /api),
attachHeartbeat 每 25s 发 ping;三个页面不再各抄一份
- chat-service 新增 streamAiRequest:H5 走 fetch + ReadableStream,小程序走
enableChunked + onChunkReceived,并手写 UTF-8 分块解码,避免中文被切半
- 写作 / 图片 / 大纲 / 稿件改走 /stream,结构化结果从末帧 {type:'final'} 取;
流断但有正文时保留已生成部分,不整块覆盖成错误文案
- 对话仍先试 WebSocket,连不上回退 /ai/chat/message/stream,帧处理复用
handleSocketMessage