Python 彗星服务器
我正在开发一个网页应用,它有一个实时更新的动态消息流(类似于Facebook的新闻动态),我想通过一种叫做长轮询的方式来更新这个消息流。我了解到在Python中,我的选择主要是使用Stackless(可以参考他们的Comet wsgi示例)或者Cometd加上Twisted。不过,关于这些选项的文档非常少,我在网上找不到关于在Python中大规模使用Comet的好资料。
有没有人成功在生产环境中用Python实现过Comet?你是怎么做到的?我可以在哪里找到实现我自己项目的资源?
7 个回答
6
这里有一个完整的例子,展示了如何把Django、Orbited和Twisted结合起来,创建一个实时(Comet)应用程序。你可以在这个链接找到它:http://github.com/clemesha/hotdot,这个例子是用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等的时候也遇到过类似的问题,文档不太全。建议你先看看 如何开始使用Comet和StreamHub,下载一些示例代码,看看它们是怎么工作的,如果需要的话可以参考API文档: