【问题标题】:How to stop streamed Comet communications being buffered in the browser如何停止在浏览器中缓冲流式彗星通信
【发布时间】:2011-01-13 15:26:54
【问题描述】:

我正在尝试使用 Comet “forever iframe”将数据包从我的 HTTP 服务器推送到浏览器,并使用 Transfer-Encoding: chunked 标头从服务器提供脚本标签。我发现我的脚本标签没有立即被解释,我必须在浏览器开始响应它们之前发送一些块。在 IE8 的情况下,这似乎需要 256 字节的数据(我没有准确检查过),而在 Firefox 3.5.7 中,它似乎超过了 1 千字节。在连接关闭之前,我还没有设法让 Chrome 响应脚本标签。但是,在所有情况下,如果我结束分块数据(使用“0”块),任何缓冲的块都会被解释。我在 Safari 上发现了一些 reference 的这种行为,但没有找到其他浏览器的任何此类信息。

我想知道的是如何在发送这些脚本标签时可靠地执行它们,而不会出现某种缓冲机制延迟它们的执行?

【问题讨论】:

    标签: http iframe comet push chunked-encoding


    【解决方案1】:

    你必须永远使用 iframe 吗?如果您使用 websockets 并回退到 flash xml 套接字,您可以支持当前使用的所有浏览器(可能在功能手机上除外)并获得真正的套接字 api。

    【讨论】:

    • 你说得对……事实上,这正是我现在正在做的事情。在我问的时候,HTML5 websocket 支持还没有现在成熟。感谢您的回答,它很好地解决了这个问题:)
    猜你喜欢
    • 2012-06-25
    • 2019-04-24
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多