Comet in Python的最新推荐?

时间:2009-10-03 21:23:03

标签: python comet twisted tornado

我将在Python中实现Comet(尽管我听到了关于erlycomet的好消息,但除了我们后端的其他所有内容之外,我对于支持基于Erlang的Web服务器并不感到兴奋)。我发现了几种可能性:

(还有其他一些与Java服务器接口的选择,但我对这些选择不感兴趣)

考虑到性能,社区和易于实施,有人可以在这些实现中提出建议吗?

7 个答案:

答案 0 :(得分:8)

我个人使用Orbited,因为我已经在使用Twisted,因为它似乎已经成熟了。 Twisted与许多用户有着悠久的悠久历史,特别是与Diesel和Tornado相比。 Orbited确实建立在Twisted上。

有一个很好的博客文章,涵盖end-to-end orbit solution here。它将数据从python脚本发送到STOMP服务器(MorbidQ)到Orbited到Javascript - 将该数据呈现为图形。

龙卷风看起来很新,我找不到扭曲的彗星,我没有听说过柴油。我特别喜欢Orbited可以转发任何类型的tcp / ip的方式,但是通过传递STOMP后端的消息可以很容易地将javascript客户端挂钩。

答案 1 :(得分:5)

如果你想写一个Comet应用,我会推荐Orbited。

使Comet实现起来更复杂(比制作一个Ajax应用程序)的原因是,你需要客户端(Comet javascript客户端)和服务器(像Twisted这样的异步网络服务器)一起工作,这是你用Orbited得到了什么 - javascript客户端和服务器。

Tornado和Diesel主要提供异步服务器部分,但缺少重要的客户端javascript代码。

另外,Orbited周围有一个非常好的社区,有几个人正在用它构建很酷的应用程序,这个页面显示了几个应用程序:http://orbited.org/wiki/Sites

答案 2 :(得分:2)

我也一直在使用Twisted。但我没有使用Orbited,而是使用Nevow.Athena。这很简单:了解更多阅读LiveElement tutorial

答案 3 :(得分:2)

你定居于Comet吗?为什么不是WebSockets?如果后者也是一个选项,我想提及在{Twisted中实现WebSockets的https://github.com/tavendo/AutobahnPython(文档可在http://autobahn.ws/python上获得)。 它符合标准,具有基于消息的基本API和用于基于帧的/流处理的高级API以及更多好东西。

答案 4 :(得分:1)

我对this question的回答提供了一个使用autobahn库进行服务器推送的示例,其中恕我直言,这是迄今为止由Twisted提供支持的最友好的WebSocket框架。此外,还提供了JS实现以及Android。

Comet完全被WebSocket取代,你应该考虑使用后者,除非你计划支持IE8及更早版本

答案 5 :(得分:0)

答案 6 :(得分:0)