1

我想编写一个基于“云”的应用程序来交互式地开发游戏。多年来,我一直在用 Python 开发应用程序和工具,但到目前为止,它们还没有采用“客户端 <-> 服务器”模型。

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

我花了两个多星期的时间寻找正确的解决方案,我发现了很多不同的服务器/框架。我是客户端服务器世界的新手,所以我无法判断这些库的真正优势或劣势。

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

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

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

我在研究过程中发现的解决方案包括:

4

5 回答 5

1

如果您只想使用 Python,那么 Twisted 是一个不错的选择。Django 没有 web sockets 实现,虽然 github 上的项目很少,但仍然不推荐,因为 Django 在 wsgi 上运行。Tornado 也适用于 websockets。

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

于 2012-12-18T15:45:16.593 回答
1

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

于 2012-12-18T15:54:09.503 回答
1

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

于 2016-10-24T14:14:06.183 回答
0

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

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

提示:

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

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

于 2012-12-19T17:33:10.140 回答
0

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

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

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

这些问题只能在某种程度上用 Python 框架“解决”。如果你真的需要可扩展的实时应用程序,它适用于很多用户,我建议你看看 Erlang/OTP 堆栈。

于 2012-12-18T15:44:38.263 回答