12

我想创建一个这样的应用程序:

http://collabedit.com/

创建这个实时应用程序的最有效方法是什么?

闪光?长轮询?Http流式传输?或者是其他东西?

谢谢 ;)

4

3 回答 3

14

目前,长轮询可能是最好的解决方案。许多大牌网站都有长轮询实现,包括 Facebook、Google 和 eBay。不是每个人的浏览器都安装/启用了 Flash。在未来,Web Sockets可能会为我们做更轻松的工作。

更新:在撰写本文时,WebSocket API已在最新的 WebKit (Chrome/Safari) 和 Firefox 4 beta 中实现。还有一个公开的 Opera 快照版本可供下载,其中包含 API 的实现。这意味着测试 API 是广泛可用的。有关更多信息,请参阅此答案

于 2010-03-13T21:43:34.083 回答
4

所有不同的方法都有不同的优点和缺点,我不是差异专家,这就是为什么我会建议你避免做出选择,避免每种方法涉及的开发和调整,避免未来可用技术的变化(即随着 HTML5 web sockets 的到来),使用一个抽象传输方法的库,并根据客户端功能选择最佳方法:

http://socket.io/

这个奇妙的库使创建实时应用程序变得非常简单!并且有各种服务器端实现:Python (Tornado)、Java、Google GO、Rack (Ruby),除了 Node.js 中的主流实现(服务器端 JavaScript)

于 2011-05-03T19:09:19.157 回答
1

我不认为长轮询是最有效的彗星方式。无论如何,它会在得到响应后发送新的 HTTP 请求。它比 HTTP 流式传输花费更多额外的 HTTP 请求。

但是,长轮询可能比 HTTP 流更可靠且更容易实现。根据Google Code 中的这篇文章,如果中间 HTTP 代理缓冲内容,HTTP 流可能无法正常工作。

有趣的是,GMail 不使用长轮询。在 Http 嗅探器的帮助下,很明显它使用了 Comet 的 HTTP 流。

于 2010-03-22T08:43:56.897 回答