我已经对使用 javascript 的服务器推送进行了一些研究,并发现普遍的共识是我正在寻找的是“彗星”设计模式。在 jQuery 之上构建的这种模式有什么好的实现吗?如果没有,这种模式有什么好的实现吗?不管这些问题的答案如何,从实现的角度来看,是否有关于这种模式的任何文档?
8 回答
我写了Till提到的插件。该插件是Bayeux协议的实现,目前支持长轮询(通过 AJAX 的本地服务器)和回调轮询(通过 XSS 的远程服务器)。Python有一个Bayeux实现,称为 cometd-twisted,我听说我的插件可以使用它,但我还没有验证这一点。我已经测试并验证了它适用于cometd-jetty和erlycomet,其中包含一个 jQuery Comet 示例。我的博客上有更多信息,可以在其google 代码页上找到带有基本聊天示例的当前代码。希望此信息对您有所帮助,如果需要有关插件的任何进一步帮助,请随时与我联系。
有人使用 jQuery 为 Comet 构建了一个客户端。我不知道它是否有任何好处。我读过关于 Comet 的文章,听说过它可以做的所有好事,但我从来没有开始使用它。我目前的任何项目都没有时间也没有用例。
我完全忘了添加一个链接来实现彗星。
有彗星日报,他们在网上有一个比较。比较强调不同实现的成熟度。这很有趣,应该让你开始。
希望有帮助!
查看Ape 项目以获得实现彗星模式的完整客户端和服务器端解决方案。
模式描述: http: //ajaxpatterns.org/HTTP_Streaming
我在这里有一个非常简单的例子,可以让你开始使用彗星。它涵盖了使用 NHPM 模块编译 Nginx,并包含 jQuery、PHP 和 Bash 中简单发布者/订阅者角色的代码。
http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/
可以在这里找到一个工作示例(简单聊天):http:
//cheetah.jamieisaacs.com/
如果您使用的是 JQuery,我建议您使用 jquery-stream。我目前在一个项目中使用 jquery-stream,到目前为止它是可靠的、有据可查的并且有一个活跃的谷歌代码项目。