【问题标题】:Is there a difference between long-polling and using Comet长轮询和使用 Comet 有区别吗
【发布时间】:2011-02-03 23:26:50
【问题描述】:

我正在实施一个需要实时更新的系统。我一直在研究某些场景,其中包括彗星。实现这一点我看不出这与传统的长轮询有何不同。

在这两种情况下,您都必须发送请求,然后服务器发回响应。在浏览器中解释响应,然后开始一个新的请求。

如果在这两种情况下我都需要打开和关闭连接,我为什么要使用 Comet。

【问题讨论】:

标签: javascript comet long-polling


【解决方案1】:

一些Comet 技术要求您不断打开新请求(例如,分块隐藏 iframe),其想法是保持请求打开并让服务器定期发送数据.但是,如果没有(正如一位维基百科贡献者巧妙地指出的那样)负面影响,这在所有主要浏览器中都不能很好地工作,因此需要长轮询技术。链接文章中的更多内容。

【讨论】:

【解决方案2】:

正如 Marcelo 所提到的,Comet 通常用于描述“HTTP 流”的任何技术,包括长轮询。在某些情况下,Comet 也可能更具体地指代Bayeux Protocol。例如,jQuery Comet 插件就是这个协议。来自巴约网站:

从服务器到 Web 客户端的异步消息传递通常被描述为服务器推送。 服务器推送技术与 Ajax Web 应用程序的结合称为 Comet。 CometD 是 Dojo 基金会的一个项目,旨在以多种编程语言提供 Bayeux 协议的多种实现。

Bayeux 尝试使用 Comet 技术标准化发布/订阅协议,允许客户端和服务器端库的供应商创建可互操作的组件。

【讨论】:

  • 你能用jQuery Comet实现http流吗?因此只有一个请求和多个响应。我看到很多网站都提到了理论技术,但我找不到一个小的示例应用程序
  • 使用<iframe> 作为传输媒体应该可以实现一个请求的多重响应。我不确定 jQuery 插件是否支持 Bayeux 协议的这个可选部分。
【解决方案3】:

Comet 是各种异步更新技术的总称,长轮询只是其中之一。

【讨论】:

  • 好的,我明白了。但是jquery有一个comet插件,可以和comet服务器一起使用。与传统的长轮询相比,这有什么好处。除了长轮询之外,我找不到使用其他方法的任何资源。
【解决方案4】:

如果你想推或拉,你可以使用JPE

【讨论】:

    猜你喜欢
    • 2012-07-07
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2011-05-21
    • 2023-03-20
    • 2015-02-16
    • 1970-01-01
    • 2010-12-24
    相关资源
    最近更新 更多