mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 09:38:02 +00:00
fix: 修复流式响应的 Parse Error 和缓冲问题
主要修改: 1. 从 compression 中间件中排除 SSE 流式响应,避免压缩导致的缓冲 2. 移除导致 Parse Error 的 res.flushHeaders() 调用 3. 改进流式响应的错误处理,发送 SSE 错误事件而不是破坏流 4. 在写入数据前检查流状态,避免写入已销毁的流 5. 优化响应结束时的处理逻辑,确保缓冲区数据正确处理 这些修改确保了流式请求能够正常显示打字机效果,同时保留了 usage token 收集功能。 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -47,11 +47,8 @@ async function handleMessagesRequest(req, res) {
|
||||
res.setHeader('Access-Control-Allow-Origin', '*');
|
||||
res.setHeader('X-Accel-Buffering', 'no'); // 禁用 Nginx 缓冲
|
||||
|
||||
// 立即发送响应头,防止缓冲
|
||||
res.flushHeaders();
|
||||
|
||||
// 禁用 Nagle 算法,确保数据立即发送
|
||||
if (res.socket && res.socket.setNoDelay) {
|
||||
if (res.socket && typeof res.socket.setNoDelay === 'function') {
|
||||
res.socket.setNoDelay(true);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user