【发布时间】:2010-09-13 06:07:49
【问题描述】:
我对使用 javascript 的服务器推送进行了一些研究,并发现普遍的共识是,我正在寻找的是“彗星”设计模式。在 jQuery 之上构建的这种模式有什么好的实现吗?如果没有,这种模式有什么好的实现吗?不管这些问题的答案如何,从实现的角度来看,是否有任何关于这种模式的文档?
【问题讨论】:
标签: javascript jquery design-patterns comet server-push
我对使用 javascript 的服务器推送进行了一些研究,并发现普遍的共识是,我正在寻找的是“彗星”设计模式。在 jQuery 之上构建的这种模式有什么好的实现吗?如果没有,这种模式有什么好的实现吗?不管这些问题的答案如何,从实现的角度来看,是否有任何关于这种模式的文档?
【问题讨论】:
标签: javascript jquery design-patterns comet server-push
我写了 Till 提到的插件。该插件是Bayeux 协议的实现,目前支持长轮询(通过AJAX 的本地服务器)和回调轮询(通过XSS 的远程服务器)。 Python 有一个名为 cometd-twisted 的 Bayeux 实现,我听说我的插件可以使用它,但我还没有验证这一点。我已经测试并验证了它可以与 cometd-jetty 和 erlycomet 一起使用,其中包含一个 jQuery Comet 示例。在我的blog 上有更多信息,带有基本聊天示例的当前代码可以在其google code page 上找到。希望此信息对您有所帮助,如果需要有关插件的任何进一步帮助,请随时与我联系。
【讨论】:
有人建造了a client for Comet using jQuery。我不知道它是否有任何好处。我读过关于 Comet 的文章,听说过它可以做的所有好事,但我从来没有开始使用它。我目前的任何项目都没有时间,也没有用例。
我完全忘了添加一个关于实现彗星的链接。
有彗星日报,他们有一个comparison 在线。比较强调不同实现的成熟度。这很有趣,应该可以帮助您入门。
希望有帮助!
【讨论】:
查看Ape Project,了解实现彗星模式的完整客户端和服务器端解决方案。
【讨论】:
【讨论】:
Comet 是一个很好的解决方案,并且有各种各样的实现。哪一个取决于您的需求。
我们已经为 IIS/ASP.NET 实现了一个解决方案,WebSync。它包括 javascript 客户端,可以很好地与 jQuery 配合使用。从技术上讲,由于它是 Bayeux 协议,因此任何 Bayeux 客户端都应该可以正常工作。在 dojo 库中也可以找到相同的协议。
有关更多详细信息,您可以查看the Bayeux protocol 的规范。
【讨论】:
我在这里有一个非常简单的示例,可以帮助您开始使用 comet。它涵盖了使用 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,到目前为止它是可靠的、有据可查的,并且有一个活跃的 Google 代码项目。
【讨论】: