Comet和jQuery
我已经对使用javascript的服务器推送进行了一些研究,并发现普遍共识是,我要寻找的是" Comet"设计模式。是否在jQuery之上构建了该模式的任何良好实现?如果没有,那么该模式是否有任何好的实现?而且,无论这些问题的答案是什么,从实现的角度来看,是否有关于此模式的文档?
解决方案
模式说明:http://ajaxpatterns.org/HTTP_Streaming
有人使用jQuery为Comet构建了一个客户端。我不知道这有什么好处。我已经读过Comet,并听说过它可以做的所有事情,但是我从来没有开始使用它。在我目前的任何项目中都没有时间,也没有用例。
我完全忘记为实现彗星添加链接。
有《彗星日报》,他们在线上有比较。比较强调了不同实现的成熟度。这很有趣,应该会入门。
希望能有所帮助!
我写了Till提到的插件。该插件是Bayeux协议的实现,目前支持长轮询(通过AJAX的本地服务器)和回调轮询(通过XSS的远程服务器)。我听说过我的插件可以使用,但是有一个Bayeux的Python实现叫做Cometd-twisted,但我没有对此进行验证。我已经测试并验证了它可以与cometd-jetty和erlycomet一起使用,其中包括一个jQuery Comet示例。我的博客上有更多信息,可以在其Google代码页上找到带有基本聊天示例的当前代码。希望此信息对我们有所帮助,如果需要有关该插件的任何其他帮助,请随时与我联系。
Comet是一个很好的解决方案,并且有各种各样的实现。哪一个取决于需求。
我们已经为IIS / ASP.NET,WebSync实现了一个解决方案。它包括javascript客户端,可与jQuery很好地配合使用。从技术上讲,由于它是Bayeux协议,因此任何Bayeux客户端都应该可以正常工作。在dojo库中也可以找到相同的协议。
有关更多详细信息,请参阅Bayeux协议的规范。
请查看Ape Project,以获取实现Comet模式的完整客户端和服务器端解决方案。
我在这里有一个非常简单的示例,可以开始使用彗星。它涵盖了使用NHPM模块编译Nginx的内容,并包括用于jQuery,PHP和Bash中的简单发布者/订阅者角色的代码。
http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/
一个工作示例(简单聊天)可以在这里找到:
http://cheetah.jamieisaacs.com/