SSE等到所有数据推送完成后才发送给客户端问题解决方案
Nginx 会缓存代理服务器的响应(聚合类型),服务推送的数据被 Nginx 缓存到缓冲区,导致客。户端没有实时收到数据,而是等到服务所有数据推送完后,客户端才一次性收到了所有数据。服务端响应时除了设置 SSE所必须的 Response Header 外,在各层网关之间转发时会丢失,所以在多层网络架构下 Nginx 需要添加。二、中间层node则是设置单独绕过compression。告知Nginx
·
一、以Nginx为例
Nginx 会缓存代理服务器的响应(聚合类型),服务推送的数据被 Nginx 缓存到缓冲区,导致客
户端没有实时收到数据,而是等到服务所有数据推送完后,客户端才一次性收到了所有数据
二、适配方案:
禁用缓存功能:
服务端响应时除了设置 SSE所必须的 Response Header 外,
还需要添加非标Header
X-Accel-Buffering:no
告知Nginx不缓存响应,确保数据实时发送到客户端。
三、值得注意的是:
在多层网络架构的环境下
X-Accel-Buffering:no Header
在各层网关之间转发时会丢失,所以在多层网络架构下 Nginx 需要添加
proxy_pass header X-Accel-Buffering
来确保整条链路上Header的传递。
二、中间层node则是设置单独绕过compression

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)