我开发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技术指南