如何实现Comet?

3
我已经开发了一段时间的Web应用程序,但最近才接触到Comet服务器端推送技术,我对这项技术的理解非常不成熟。虽然链接http://www.zeitoun.net/articles/comet_and_php/start提供了两个简单的PHP无限循环实现示例,但我想更多地了解上述方法的后果以及它是否适合生产使用。 专用的Comet服务器(如Meteor(http://meteorserver.org/),streamhub(http://www.stream-hub.com/)和freeliberator(http://www.freeliberator.com/index.php))有什么优势?
此外,Comet服务器端推送与HTML5 Web套接字设施有何不同?
我的主要目标是构建一种协作实时文档编辑工具的变体。
1个回答

7
尽管链接http://www.zeitoun.net/articles/comet_and_php/start提供了两个使用PHP中的无限循环的简单示例实现,但我想更多地了解上述方法的后果以及它是否适用于生产环境。
这个解决方案是导致PHP和Comet/WebSockets不可扩展的因素之一。参见:
- solution for COMET and PHP - Using comet with PHP? 专用Comet服务器如Meteor(http://meteorserver.org/)、streamhub(http://www.stream-hub.com/)、freeliberator(http://www.freeliberator.com/index.php)有什么优势?
这些解决方案的优势在于它们建立在处理多个并发连接的思想基础上。它们还提供库,提供额外的功能,比如发布/订阅,你可能需要自己实现。我曾为Caplin Systems工作,他们开发了Liberator产品,这是一个高度调整的软件解决方案,完全用于处理和解决此问题。
引用:

Comet服务器端推送与HTML5 Web Socket设施有何不同?

答案摘自此处
Comet是一个总称,有许多“Comet服务器”(见下文)在可能的情况下使用WebSockets作为传输机制。Comet服务器不仅使用AJAX、XHR长轮询、Forever-Frame等技术,现在也使用WebSockets,并在必要时回退到其他传输机制。
以下是一些使用WebSockets的“Comet服务器”:
- StreamHub:http://streamhub.blogspot.com/2010/12/html-5-web-sockets-arrives-in-streamhub.html - APE(“原生WebSockets”):http://www.ape-project.org/ - Caplin Liberator:http://www.caplin.com/caplin_liberator.php - MigratoryData:https://migratorydata.com/ - CometD:http://cometdproject.dojotoolkit.org/documentation/2.x/howtos/websocket 我的主要目标是构建一种协作实时文档编辑设施的变体。
我建议您不要尝试从头开始实现Comet/WebSockets的解决方案。这是一个非常清楚的问题,有许多优秀的解决方案。而且,从头开始实现解决方案仍然不简单。您需要解决的有趣问题是在多个客户端之间进行状态同步,因此这些现有的实时技术的优点是您可以使用它们并专注于构建您的应用程序。
可能也会感兴趣的是:
- XMPP BOSH v Comet - Realtime Web Technologies Guide

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接