Python中Comet的最新推荐是什么?
我打算用Python来实现Comet(虽然我听说erlycomet不错,但我不太想在我们的后端支持一个基于Erlang的网络服务器)。我找到了几个选择:
- Diesel
- Tornado
- Twisted-comet
- Orbited(使用twisted)
(还有一些其他选择可以和Java服务器配合,但我对那些不感兴趣)
有没有人能在这些实现中给我推荐一个,考虑到性能、社区支持和实现的简单性?
7 个回答
我也在使用Twisted。不过我用的不是Orbited,而是Nevow.Athena。这个东西其实很简单:你可以通过阅读这个LiveElement教程来了解更多。
如果你想写一个Comet应用,我推荐使用Orbited。
Comet的实现比Ajax应用要复杂,因为你需要同时有客户端(一个Comet的JavaScript客户端)和服务器(一个像Twisted这样的异步网络服务器)一起工作。而Orbited正好提供了这两者:JavaScript客户端和服务器。
Tornado和Diesel主要提供异步服务器的部分,但缺少了重要的客户端JavaScript代码。
另外,Orbited周围有一个很不错的社区,很多人正在用它开发有趣的应用,这个页面展示了一些这样的应用:http://orbited.org/wiki/Sites
我个人在使用Orbited,主要是因为我已经在用Twisted,而且Orbited看起来比较成熟。Twisted有着悠久的历史,用户也很多,尤其是跟Diesel和Tornado比起来。Orbited确实是建立在Twisted之上的。
这里有一篇不错的博客文章,介绍了一个完整的Orbited解决方案。它的工作流程是:从一个Python脚本发送数据到一个STOMP服务器(MorbidQ),再到Orbited,最后到JavaScript - 将这些数据呈现为图表。
Tornado看起来比较新,我找不到twisted-comet,也没听说过diesel。我特别喜欢Orbited的一个特点,就是它可以转发任何类型的tcp/ip数据,同时也很方便地让JavaScript客户端通过一个消息传递的STOMP后端进行连接。