基于Python websocket的应用程序框架/服务器

时间:2012-12-18 15:38:12

标签: javascript python frameworks webserver websocket

我想编写一个基于'云'的应用程序来交互式开发游戏。我在Python中开发应用程序和工具多年,但到目前为止他们还没有在'client< - >中服务器模型。

我不想得到任何比较。我想问专家,哪个工具能够解决这个具体问题

我正在挖掘两周以上的正确解决方案,我找到了很多不同的服务器/框架。我是客户服务器世界的新手,所以我无法判断这些库的真正优势或劣势。

我将大量使用websockets(服务器端的Python,客户端的js),我想选择最好的Python服务器/框架。

问题是,哪个python服务器/框架:

  1. 将适用于基于大型云的应用程序开发
  2. 将为我提供轻松使用websockets的可能性
  3. 将提供良好的可扩展性 - 我想为很多用户提供服务
  4. 会给我开发这样的应用程序的良好,适合的框架(或者我应该基于像Tornado这样的服务器开发我自己的框架?)
  5. 会很快(有上述假设)
  6. 将允许我在客户端和服务器之间使用一些基于websocket的'rpc'解决方案
  7. 我在研究过程中发现的解决方案包括:

5 个答案:

答案 0 :(得分:1)

如果你只想使用Python,那么Twisted是一个不错的选择。 Django没有Web套接字实现,虽然github上的项目很少,但是由于Django在wsgi上运行,所以仍然不建议使用它。龙卷风也适用于websockets。

如果您处于开始阶段并探索选项,我强烈建议您使用Node.js.它非常适合异步事件处理。顾名思义,它的javascript不是一些python框架。

答案 1 :(得分:1)

我选择Autobahn Websockets(基于Twisted)框架。它有一个干净的实现,并且经过了很好的测试(另外它还有一个JS客户端库)。

答案 2 :(得分:0)

我使用Tornado webserver和SockJS作为灵活的传输层(为不同的浏览器提供websocket或“几乎websocket”功能)。这个技术堆栈将解决#2,将成为#4和#6的良好基础。但从这个角度来看:

  

适合基于大型云应用程序开发提供良好的

     

可扩展性 - 我想为很多用户提供服务

这些点只能在某种程度上通过Python框架“解决”。如果你真的需要可扩展的实时应用程序,它可以和很多用户一起使用,我建议你看一下Erlang / OTP堆栈。

答案 3 :(得分:0)

我正在使用 pywebsocket ,简单而小巧......

您可以在此处获取代码(96 KB):http://code.google.com/p/pywebsocket/

提示:

尝试独立版本而不是Apache附加版本

如果您需要hixie支持,请在启动服务器时添加--allow-draft75

答案 4 :(得分:0)

你可以试试   http://websockets.readthedocs.io/en/stable/intro.html 我上传了一个与Python3.5一起使用的小型演示   https://www.youtube.com/watch?v=BgpPm9N338s