【发布时间】:2010-09-15 05:13:44
【问题描述】:
通过 HTTP Streaming Comet,我的意思是“永久 iframe”/“永久 xhr”变体,在从服务器推送数据后不会关闭连接,而不是标准轮询和长轮询,后者关闭并重新发送每个服务器推送事件的新请求。
我查看了 dojo.io.cometd 包,似乎它们只有轮询实现。我还找到了this example,但即使经过一番修改,它似乎也无法在 webkit 中工作(我让它在其他任何地方都可以工作)。 This announcement from the safari blog 似乎暗示 xhr 可以,但我找不到任何代码或文档,也无法让它工作。
有谁知道在 Webkit 浏览器(Safari 和 Chrome)中实现 HTTP 流彗星的技术、脚本、库或演示?
更新
经过一番修改后,我发现需要做两件事才能通过 XHR 在 Safari 中使用 http 流:
- 响应需要有一个 Content-Type:multipart/x-mixed-replace
- 在浏览器开始一致地显示更新之前,响应需要发送一些“噪音”字符。我假设这与填充一些内部缓冲区有关。
更新 2
我终于使用 iframe 技术让它在所有浏览器中工作。该解决方案需要注意的是,只有基于 WebKit 的浏览器才能接收 multipart/x-mixed-replace 标头。
【问题讨论】:
-
没有“multipart/x-mixed-replace”,您仍然可以在 Safari 中获得 HTTP 流式处理工作。你只需要自己做解析。
-
@Leo:可以分享一下所有浏览器都启用Http Streaming的代码sn-ps吗?这应该对我和社区有用。谢谢。
标签: javascript safari comet