javascript - Safari 中是否可以使用 Http Streaming Comet?

标签 javascript safari comet

对于 HTTP Streaming Comet,我指的是“永远的 iframe”/“永远的 xhr”变体,它们在从服务器推送数据后不会关闭连接,这与关闭并重新发送请求的标准轮询和长轮询相反每个服务器推送事件的新请求。

我查看了 dojo.io.cometd 包,它们似乎只有轮询实现。我还找到了this example ,但即使经过相当多的修补,它似乎也无法在 webkit 中工作(我让它在其他任何地方都可以工作)。 This announcement from the safari blog似乎暗示 xhr 是可能的,但我找不到任何代码或文档,也无法让它工作。

有谁知道在 Webkit 浏览器(Safari 和 Chrome)中实现 HTTP streaming comet 的技术、脚本、库或演示?

更新

经过一些修改后,我发现需要做两件事才能通过 XHR 在 Safari 中使用 http 流:

  • 响应需要有一个 Content-Type:multipart/x-mixed-replace
  • 在浏览器开始持续显示更新之前,响应需要发送一些“噪音”字符。我假设这与填充一些内部缓冲区有关。

更新 2

我终于使用 iframe 技术让它在所有浏览器中工作。该解决方案需要注意的是,只有基于 WebKit 的浏览器才能接收 multipart/x-mixed-replace header 。

最佳答案

根据维基百科,HTTP Streaming comet 应该可以在每个浏览器中使用。 “没有框架的页面布局”,Ajax:权威指南。 O'Reilly Media,第 320 页。ISBN 0596528388 是此信息的引用引用,因此本书可能对如何执行此操作提供了建议。

还有 http://meteorserver.org/有一个我刚刚确认在 Chrome 中有效的演示,它是一个客户端库 + 一个将数据推送到客户端的服务器。

关于javascript - Safari 中是否可以使用 Http Streaming Comet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/169258/

相关文章:

c# - 网络聊天应用程序 - ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax - 面临的问题 - 寻求见解

javascript - jQuery 自动完成输入键安哥拉

java - Selenium Safari WebDriver 不工作

java - 如何运行 Atmosphere 样本?

javascript - 在页面加载时重置 Bootstrap 3 Carousel

javascript - jQuery ajax 适用于 Chrome,但不适用于 Firefox 或 Safari

php - 如何在不调用 session_start 的情况下获取 session

命名空间的 JavaScript 继承

javascript - 令人难以置信的 Facebook 评论缩水

javascript - 读取不区分大小写的 JS 对象