【问题标题】:How to implement Comet ?如何实现彗星?
【发布时间】:2011-12-28 11:07:11
【问题描述】:

我开发 Web 应用程序已经有一段时间了,但最近才被引入 Comet 服务器端推送技术,我对这项技术的理解还很不成熟。虽然链接http://www.zeitoun.net/articles/comet_and_php/start 提供了两个在 PHP 中使用无限循环的简单示例实现,但我想更多地了解上述方法的影响以及它是否适合生产。 Meteor(http://meteorserver.org/)、streamhub(http://www.stream-hub.com/)、freeliberator(http://www.freeliberator.com/index.php)这样的comet服务器有什么优势) ?

Comet 服务器端推送与 HTML5 网络套接字设施有何不同?

我的主要目标是构建一种协作式实时文档编辑工具的变体。

【问题讨论】:

    标签: ajax websocket comet


    【解决方案1】:

    虽然链接 http://www.zeitoun.net/articles/comet_and_php/start 提供了两个在 PHP 中使用无限循环的简单示例实现,但我想了解更多关于上述方法的影响以及它是否适合生产。

    此解决方案是导致 PHP 和 Comet/WebSockets 无法扩展的共识的因素之一。见:

    像 Meteor(http://meteorserver.org/)、streamhub (http://www.stream-hub.com/)、freeliberator (http://www.freeliberator.com/index.php) 这样的彗星专用服务器有什么优势?

    优点是这些解决方案在构建时考虑到了处理多个并发连接的想法。他们还提供了提供额外功能的库,例如您可能想要的pub/sub,因此您必须自己实现。我曾为构建 Liberator 产品的 Caplin Systems 工作,它是一个高度优化的软件解决方案,完全用于处理和解决这个解决方案。

    Comet 服务器端推送与 HTML5 网络套接字设施有何不同?

    答案取自here

    Comet 是一个总称,有很多“Comet 服务器”(请参阅 下面)尽可能使用 WebSockets 作为传输机制。 Comet 服务器不仅仅使用 AJAX、XHR Long-Polling、Forever-Frame 等等。他们现在使用 WebSockets 并回退到其他传输 需要的机制。

    这里只是一些使用 WebSockets 的“彗星服务器”:

    我的主要目标是构建一种协作式实时文档编辑工具的变体。

    我建议您不要尝试从头开始实施 Comet/WebSockets 的解决方案。这是一个很好理解的问题,有许多出色的解决方案。从头开始实施该解决方案仍然并不简单。您需要解决的一个有趣问题是跨多个客户端的状态同步,因此这些现有实时技术的优点在于您可以使用它们并专注于构建您的应用程序。

    可能也感兴趣:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-09
      • 2012-07-03
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      相关资源
      最近更新 更多