2009-06-07 76 views
31

我正在构建一个Web应用程序,该应用程序具有我想通过长轮询机制进行更新的实时馈送(类似于Facebook的新闻源)。我明白,在Python中,我的选择很多都是使用Stackless(从他们的Comet wsgi示例构建)或Cometd + Twisted。不幸的是,有关这些选项的文档非常少,我无法在网上找到有关Python上彗星生产规模用户的良好信息。Python Comet服务器

有没有人在生产系统中成功实现Python上的彗星?你是怎么做到的?我在哪里可以找到实现自己的资源?

回答

9

沿着我建议你使用StreamHub Comet Server - 它使用了大量的人 - 我个人使用它与我运行的几个Django站点。您将需要编写一点Java处理流 - 我使用Jython来完成此操作。前端代码是一些真正简单的Javascript一拉:

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

的文档是相当不错的 - 我有类似的问题,因为你试图开始使用的cometd等人的稀疏文档。一开始我读到Getting Started With Comet and StreamHub,下载并看到一些例子工作,并参考API文档,如果你需要:

2

我还没有做到这一点,但this guy已经写了一篇关于它的好文章,用Django的例子和指针(我没有选中)指向其他框架。

4

我已经完成了大量API使用扭曲的东西,其中大部分可在我的github帐户。

大多数是客户端,但slosh是我写的服务器来做一个实时便宜的pubsub排序的东西。它通过允许简单的流复制而水平地进行读取。当你坚持使用普通的HTTP时,写入会有点不同,但是我已经为它演示了一个相当大的数量。

否则,您拥有大多数XMPP服务器支持的全功能BOSH,并且可以让您将消息分发与Web前端分离。

13

Orbited似乎是一个不错的解决方案。还没有尝试过。


更新:事情已经过去2.5年改变。

我们现在在所有主流浏览器中都有websockets,除了IE(自然地)和一些非常好的抽象概念,它提供了许多仿真实时通信的方法。

+0

轨道的缺点是文档太少。 – 2011-10-11 04:39:35

+0

轨道和链接似乎已经死了?它现在导致一个关于健康生活方式的故事和其他类似的博客.. – twity1337 2018-02-10 13:40:59

1

轨道式和Redis解决方案很好,但是当您拥有Google发布的PubSubHubbub之类的东西时不再相关。这使得成为给定Feed的发布者或订阅者变得非常容易。 http://code.google.com/p/pubsubhubbub/