通过Microsoft Azure web应用程序通过http2发送的事件源(服务器发送的事件)



我在Microsoft Azure上为处理服务器发送事件的NodeJS服务器设置了一个web应用程序。我还设置了一个静态web应用程序作为客户端。两者似乎都运行良好,客户端可以向服务器发送事件源请求,服务器接收并开始处理。但是客户端从未接收到响应,并且事件源保持"0";挂起";并最终超时。

这是服务器为发送请求而输入的功能:

response.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Access-Control-Allow-Origin': "*",
'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept'
});
response.write('id: ' + id + 'n');
if (event) {
response.write('event: ' + event + 'n');
}
response.write("data: " + data + 'nn');

在本地,它在HTTP2上运行得非常好。有人知道我是否错过了一个场景吗?

在我的案例中,这是缓冲问题。我没有得到回应,或者得到了巨大的延迟。

我添加了头以禁用响应的缓存和缓冲。

X-Accel-Buffering: no;

它帮助了我。

最新更新