我正在构建一个具有实时源的Web应用程序(类似于Facebook的新闻源),我希望通过长轮询机制进行更新.我理解使用Python,我的选择几乎要么使用Stackless(从他们的Comet wsgi示例构建)或Cometd + Twisted.遗憾的是,关于这些选项的文档很少,我无法在线找到关于Python上彗星生产规模用户的好信息.
有没有人在生产系统中成功实现Python上的彗星?你是怎么做的,我在哪里可以找到实现自己的资源?
Orbited似乎是一个很好的解决方案.虽然没试过.
更新:过去2.5年内情况发生了变化.
我们现在在所有主流浏览器中都有websockets,除了IE(自然)和一些非常好的抽象,它提供了许多模拟实时通信的方法.
socket.io以及tornadio(socket.io 0.6)和tornadio2(socket.io 0.7+)
sock.js和SockJS-tornado一起
我建议你使用StreamHub Comet Server - 它被很多人使用 - 我个人用它来运行我的几个Django站点.您将需要编写一小部分Java来处理流 - 我使用Jython来完成此操作.前端代码是一些真正简单的Javascript a la:
StreamHub hub = new StreamHub(); hub.connect("http://myserver.com/"); hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); });
文档非常好 - 当你试图开始使用Cometd等人的稀疏文档时,我遇到了类似的问题.首先,我将阅读Comet和StreamHub入门,下载并查看一些示例如何工作并参考API文档,如果您需要:
Javascript API JSDoc
从Java Javadoc流式传输
这是一个功能齐全的例子,结合Django,Orbited和Twisted来创建一个实时(Comet)应用程序:http://github.com/clemesha/hotdot 使用Python.