114

我已经对使用 javascript 的服务器推送进行了一些研究,并发现普遍的共识是我正在寻找的是“彗星”设计模式。在 jQuery 之上构建的这种模式有什么好的实现吗?如果没有,这种模式有什么好的实现吗?不管这些问题的答案如何,从实现的角度来看,是否有关于这种模式的任何文档?

4

8 回答 8

78

我写了Till提到的插件。该插件是Bayeux协议的实现,目前支持长轮询(通过 AJAX 的本地服务器)和回调轮询(通过 XSS 的远程服务器)。Python有一个Bayeux实现,称为 cometd-twisted,我听说我的插件可以使用它,但我还没有验证这一点。我已经测试并验证了它适用于cometd-jettyerlycomet,其中包含一个 jQuery Comet 示例。我的博客上有更多信息,可以在其google 代码页上找到带有基本聊天示例的当前代码。希望此信息对您有所帮助,如果需要有关插件的任何进一步帮助,请随时与我联系。

于 2008-09-26T00:17:07.860 回答
15

有人使用 jQuery 为 Comet 构建了一个客户端。我不知道它是否有任何好处。我读过关于 Comet 的文章,听说过它可以做的所有好事,但我从来没有开始使用它。我目前的任何项目都没有时间也没有用例。

我完全忘了添加一个链接来实现彗星。

有彗星日报,他们在网上有一个比较。比较强调不同实现的成熟度。这很有趣,应该让你开始。

希望有帮助!

于 2008-09-25T21:19:08.550 回答
9

查看Ape 项目以获得实现彗星模式的完整客户端和服务器端解决方案。

于 2010-07-16T14:56:33.443 回答
7

模式描述: http: //ajaxpatterns.org/HTTP_Streaming

于 2008-09-25T21:18:16.370 回答
3

Comet 是一个很好的解决方案,并且有各种各样的实现。哪一种取决于你的需求。

我们已经为 IIS/ASP.NET,WebSync实现了一个解决方案。它包括 javascript 客户端,可以很好地与 jQuery 配合使用。从技术上讲,由于它是 Bayeux 协议,因此任何 Bayeux 客户端都应该可以正常工作。在 dojo 库中也可以找到相同的协议。

有关更多详细信息,您可以查看Bayeux 协议的规范。

于 2009-12-30T04:15:12.790 回答
3

我在这里有一个非常简单的例子,可以让你开始使用彗星。它涵盖了使用 NHPM 模块编译 Nginx,并包含 jQuery、PHP 和 Bash 中简单发布者/订阅者角色的代码。

http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/

可以在这里找到一个工作示例(简单聊天):http:
//cheetah.jamieisaacs.com/

于 2010-08-31T07:12:13.390 回答
3

看看socket.io。相信我。这正是医生所吩咐的。

http://socket.io

使用 Node.js 流式传输数据

于 2011-05-25T20:35:19.130 回答
2

如果您使用的是 JQuery,我建议您使用 jquery-stream。我目前在一个项目中使用 jquery-stream,到目前为止它是可靠的、有据可查的并且有一个活跃的谷歌代码项目。

http://code.google.com/p/jquery-stream/

于 2011-12-16T15:25:07.857 回答