如何实现Comet



我开发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 web套接字设施有何不同?

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

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

这个解决方案是导致PHP和Comet/WebSockets无法扩展的原因之一。看到:

  • COMET和PHP解决方案
  • 使用彗星与PHP?

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

的优点是,这些解决方案是在考虑处理多个并发连接的情况下构建的。他们还提供库,提供额外的功能,如发布/订阅,你可能需要,因此必须实现自己。我曾在Caplin Systems工作,他们开发了Liberator产品,这是一个高度调整的软件解决方案,完全用于处理和解决这个解决方案。

还有,Comet服务器端推送与HTML5 web套接字设施有何不同?

答案取自此处:

彗星是一个总称,有许多"彗星服务器"。(见在可能的情况下使用WebSockets作为传输机制。Comet服务器不只是使用AJAX、XHR长轮询和永远帧等。他们现在使用WebSockets并退回到其他传输方式必要的机制。

这里只是一些"彗星服务器"。WebSockets:

  • StreamHub:http://streamhub.blogspot.com/2010/12/html-5-web-sockets-arrives-in-streamhub.html
  • APE ("Native 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
  • 实时Web技术指南

相关内容

  • 没有找到相关文章