EventSource在第一条消息后断开连接

时间:2012-11-27 18:32:42

标签: php http server-sent-events

EventSource行为感到有点困惑。

连接良好并保持连接,直到收到第一条消息。

当我发送data: something\n\n消息时,连接将被删除并创建新连接。

使用Content-Type: text/event-stream标头和连接被识别为事件流,检查员显示pending状态。

正如我所说,一切顺利,直到我发送第一条消息。

此后连接中断并创建新连接并且消息未发送到浏览器(至少页面未按预期更新)。

我的服务器和客户端代码与此处完全相同:http://www.html5rocks.com/en/tutorials/eventsource/basics/

这种情况发生在任何浏览器上。

1 个答案:

答案 0 :(得分:5)

确保您的服务器代码未发送Transfer-Encoding标题。

或者如果发送它,请确保它没有设置为分块。

EventSource在分块Transfer-Encoding上表现得很奇怪

您可以删除Transfer-Encoding标题或将其设置为identity

如果这样做没有用,请确保您的网络服务器没有将该标头设置为分块。

如果确实如此且您无法更新其配置,请确保您的代码将标头设置为identity(您的代码设置的标头将覆盖Web服务器设置的标头)。

如果您只是删除代码中的标题,浏览器将使用Web服务器设置的一个,
所以请务必将其设置为identity而不是删除。