Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Comet服务器_Python_Cometd_Python Stackless - Fatal编程技术网

Python Comet服务器

Python Comet服务器,python,cometd,python-stackless,Python,Cometd,Python Stackless,我正在构建一个web应用程序,它有一个实时提要(类似于Facebook的newsfeed),我想通过一个长轮询机制来更新它。我知道,对于Python,我的选择基本上是使用Stackless(从Comet wsgi示例构建)或Cometd+Twisted。不幸的是,关于这些选项的文档很少,我无法在网上找到有关comet on Python的生产规模用户的好信息 有人在生产系统中成功地在Python上实现了comet吗?你是怎么做的,我在哪里可以找到实现我自己的资源呢?我没有做过,但是已经写了一篇关

我正在构建一个web应用程序,它有一个实时提要(类似于Facebook的newsfeed),我想通过一个长轮询机制来更新它。我知道,对于Python,我的选择基本上是使用Stackless(从Comet wsgi示例构建)或Cometd+Twisted。不幸的是,关于这些选项的文档很少,我无法在网上找到有关comet on Python的生产规模用户的好信息


有人在生产系统中成功地在Python上实现了comet吗?你是怎么做的,我在哪里可以找到实现我自己的资源呢?

我没有做过,但是已经写了一篇关于它的好文章,有Django的例子和指向其他框架的指针(我没有检查过)。我已经用twisted做了很多API,其中大部分都是我的账户上提供的

大多数都是客户端的,但它是我写的一个服务器,用来做实时的事情。通过允许简单的流复制,它可以在一定程度上水平扩展读取。当您坚持使用纯HTTP时,写操作会有点不同,但我已经在演示中介绍了相当多的内容

否则,您将拥有大多数XMPP服务器支持的完全开放式的BOSH,并允许您将消息分发与web前端分离。

似乎是一个不错的解决方案。但我还没试过


更新:在过去的2.5年里,情况发生了变化

我们现在在所有主要浏览器中都有WebSocket,除了IE(自然)和一些非常好的抽象,它们提供了许多模拟实时通信的方法

  • 以及(socket.io 0.6)和(socket.io 0.7+)
  • 连同

我建议你应该使用它——很多人都使用它——就我个人而言,我在运行的几个Django网站上使用它。您需要编写一点点Java来处理流式处理—我使用了。前端代码是一些真正简单的Javascript a la:

StreamHub hub = new StreamHub();
hub.connect("http://myserver.com/");
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); });
文档非常好-当您尝试开始使用Comet et al的稀疏文档时,我遇到了类似的问题。首先,我阅读、下载并了解一些示例的工作原理,如果需要,请参考API文档:


这里有一个将Django、Orbited和Twisted结合起来创建实时(Comet)应用程序的全功能示例:使用Python。

Orbited和redis解决方案很不错,但当你有谷歌发布的PubSububBub之类的东西时,就不再相关了。这使得成为给定提要的发布者或订阅者变得非常容易


它使用了Stackless打包为CPython扩展的-stack切换功能。

orbited的缺点是文档太少。orbited和链接似乎已经死了?现在,它导致了一个关于健康生活方式故事和其他类似内容的博客。。