通过HTTP Streaming Comet,我指的是“永久iframe”/“永久xhr”变化,它们在从服务器推送数据后不关闭连接,而不是标准轮询和长轮询,它们会为每个服务器推送事件关闭并重新发送新请求。
我查看了dojo.io.cometd包,似乎他们只有轮询实现。我也找到了这个示例,但即使经过一些调整,它在webkit中似乎仍然无法工作(我在其他地方都可以)。这篇来自Safari博客的公告似乎表明它可能使用xhr实现,但我找不到任何代码或文档,也无法让它工作。
是否有人知道在Webkit浏览器(Safari和Chrome)中实现HTTP streaming comet的技术、脚本、库或演示?
更新
经过更多的调整,我发现要想通过XHR在Safari中实现HTTP streaming,需要做两件事情:
响应需要具有Content-Type:multipart/x-mixed-replace 在浏览器开始持续显示更新之前,响应需要发送一些“噪音”字符。我认为这与填充某些内部缓冲区有关。
更新2
最终,我使用iframe技术在所有浏览器中都让它工作了。解决方案的警告是,只有基于WebKit的浏览器应该接收multipart/x-mixed-replace标头。
我查看了dojo.io.cometd包,似乎他们只有轮询实现。我也找到了这个示例,但即使经过一些调整,它在webkit中似乎仍然无法工作(我在其他地方都可以)。这篇来自Safari博客的公告似乎表明它可能使用xhr实现,但我找不到任何代码或文档,也无法让它工作。
是否有人知道在Webkit浏览器(Safari和Chrome)中实现HTTP streaming comet的技术、脚本、库或演示?
更新
经过更多的调整,我发现要想通过XHR在Safari中实现HTTP streaming,需要做两件事情:
响应需要具有Content-Type:multipart/x-mixed-replace 在浏览器开始持续显示更新之前,响应需要发送一些“噪音”字符。我认为这与填充某些内部缓冲区有关。
更新2
最终,我使用iframe技术在所有浏览器中都让它工作了。解决方案的警告是,只有基于WebKit的浏览器应该接收multipart/x-mixed-replace标头。