stream disconnected before completion: stream closed before response.completed
错误信息
stream disconnected before completion: stream closed before response.completed
AI 解决方案
原文:stream disconnected before completion: stream closed before response.completed
译文:流在完成前断开连接:流在响应完成前已关闭
🎯 原因分析
此错误通常发生在使用流式传输的场景中,如 HTTP 响应流、WebSocket 流或文件流等。核心原因是数据传输过程中连接提前中断,导致响应未正常完成。常见诱因包括网络不稳定、服务器主动中断连接或客户端提前关闭连接。
💡 解决方案
以下是修复后的代码示例(以 Node.js 流式响应为例):
// 修复后的代码(Node.js 示例)
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
const stream = createStream(); // 假设 createStream 为自定义流生成函数
stream.on('error', (err) => {
console.error('流发生错误:', err);
res.end('Stream Error Occurred'); // 确保在异常时关闭响应
});
stream.on('end', () => {
res.end('Stream Completed'); // 确保流正常结束时关闭响应
});
// 将流数据写入响应
stream.pipe(res);
});
server.listen(3000, () => {
console.log('服务器运行在 http://localhost:3000');
});
🛡️ 预防措施
error 事件监听,防止未捕获异常导致连接中断,同时确保在异常时执行连接清理操作。