对EventSource
行为感到有点困惑。
连接良好并保持连接,直到收到第一条消息。
当我发送data: something\n\n
消息时,连接将被删除并创建新连接。
使用Content-Type: text/event-stream
标头和连接被识别为事件流,检查员显示pending
状态。
正如我所说,一切顺利,直到我发送第一条消息。
此后连接中断并创建新连接并且消息未发送到浏览器(至少页面未按预期更新)。
我的服务器和客户端代码与此处完全相同:http://www.html5rocks.com/en/tutorials/eventsource/basics/
这种情况发生在任何浏览器上。
答案 0 :(得分:5)
确保您的服务器代码未发送Transfer-Encoding
标题。
或者如果发送它,请确保它没有设置为分块。
EventSource
在分块Transfer-Encoding
上表现得很奇怪
您可以删除Transfer-Encoding
标题或将其设置为identity
。
如果这样做没有用,请确保您的网络服务器没有将该标头设置为分块。
如果确实如此且您无法更新其配置,请确保您的代码将标头设置为identity
(您的代码设置的标头将覆盖Web服务器设置的标头)。
如果您只是删除代码中的标题,浏览器将使用Web服务器设置的一个,
所以请务必将其设置为identity
而不是删除。