我正在构建一个具有实时提要(类似于 Facebook 的新闻提要)的 Web 应用程序,我想通过长轮询机制对其进行更新。据我所知,对于 Python,我的选择几乎是使用 Stackless(从他们的 Comet wsgi 示例构建)或 Cometd + Twisted。不幸的是,关于这些选项的文档很少,而且我无法在网上找到关于 Python 上 comet 的生产规模用户的良好信息。

有人在生产系统中成功地在 Python 上实现了 comet 吗?您是如何着手做到这一点的?我在哪里可以找到资源来实现我自己的?

有帮助吗?

解决方案

我建议你应该使用 StreamHub彗星服务器 -它使用的很多人亲自我利用这几个Django站我运行。你会需要编写一个小小的Java来处理流-我有没有使用这个 Script.前端编码是一些真正简单的Javascript a la:

StreamHub hub = new StreamHub();
hub.connect("http://myserver.com/");
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); });

该文件是很好的-我有类似的问题,因为你想要开始疏docs的Cometd et al.一开始我会读的 开始与彗星和StreamHub, 下载并且看到一些实例的工作,并参考API文档,如果你需要:

其他提示

运行轨道 似乎作为一个很好的解决方案。没有尝试过。


更新:事情已经改变的最后一2.5岁。

我们现在有web sockets在所有主要的浏览器,除非即(当然)和几个非常好的抽象概念,这提供了很多方法仿效的实时通信。

以下是结合 Django、Orbited 和 Twisted 创建实时 (Comet) 应用程序的全功能示例: http://github.com/clemesha/hotdot 使用Python。

我已经用扭曲的样子,其中大部分都可以在我的 github上帐户。

大多数都是客户端,但晃动是我写的做实时价格便宜发布订阅服务器那类的东西。它有点水平进行读取,通过允许简单的流复制扩展。写有一点不同,当你坚持普通HTTP,但我已经通过它推向一个像样的量的演示。

否则,您必须全波什大部分XMPP服务器支持,可以让你从分离的web前端的消息分发。

我没有做过,但这家伙具有和写入良好的文章关于它,使用Django例子和指针(我还没有检查)到其他框架。

的运行轨道和穿红衣的解决方案是不错的,但不再相关,当你有喜欢的东西pubsubhubbub发送的,谷歌公布。这使得它很容易被发行或订户定饲料。 http://code.google.com/p/pubsubhubbub/

下面是一个例子即确实长轮询与GEVENT和Django的

它使用 greenlet - 来自无堆栈堆栈切换功能封装为CPython的扩展

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top