Wojciech Danilo
Wojciech Danilo

Reputation: 11803

Python websocket based application framework / server

I want to write an 'cloud' based application to interactivly develop games. I'm developing apps and tools in Python for years, but so far they were not in 'client <-> server' model.

I don not want to get any comparison. I want to ask experts, which tool is able to solve this specific problem

I was digging for over two weeks for right solutions and I found a lot of different servers/frameworks. I'm new to client-server world, so I'm not able to judge the real strengths or weaknesses of these libraries.

I will heavly use websockets (Python on the server side, js on the client side) and I want to choose best possible Python server / framework.

The question is, which python server/framework:

  1. will be suitable for big cloud based application development
  2. will give me possibility to easly use websockets
  3. will provide good scalability - I want to serve a lot of users
  4. will give me good, sutiable framework for developing such application (or should I develop my own framework based on server like Tornado?)
  5. will be fast (with above assumptions)
  6. will allow me to use some websocket based 'rpc' solutions between client and server

The solutions I found during my research include:

Upvotes: 2

Views: 6448

Answers (5)

Yotam
Yotam

Reputation: 888

You may try http://websockets.readthedocs.io/en/stable/intro.html There is a small demo using it with Python3.5 that I have uploaded https://www.youtube.com/watch?v=BgpPm9N338s

Upvotes: 1

ATOzTOA
ATOzTOA

Reputation: 35980

I am using pywebsocket , simple and small...

You can get the code here (96 KB) : http://code.google.com/p/pywebsocket/

Tips:

Try the standalone version than the Apache add-on version

If you need hixie support, add --allow-draft75 while starting the server

Upvotes: 0

user762391
user762391

Reputation:

I'd go with Autobahn Websockets (Twisted based) Framework. It has a clean implementation and it's well tested (Plus it has a JS client library).

Upvotes: 1

Sushant Gupta
Sushant Gupta

Reputation: 9458

If you want to use Python only, then Twisted is a nice option to go with. Django has no web sockets implementation, though there are few projects at github, but still it is not recommended since Django runs on wsgi. Tornado is good with websockets too.

If you are at a beginning stage and exploring options, I strongly suggest, go with Node.js. It is awesome for asynchronous event handling. As name only suggests, its javascript not some python framework.

Upvotes: 1

Oleksii Kachaiev
Oleksii Kachaiev

Reputation: 6232

I worked a lot with Tornado webserver and SockJS as flexible transport layer (to provide websocket or "almost websocket" functionality for different browsers). This technical stack will solve #2, will be good basement for #4, and for #6. But from this point of view:

suitable for big cloud based application development provide good

scalability - I want to serve a lot of users

such points can be "resolved" with Python frameworks to some extent only. If you really need scalable real-time application which works fine with lot of users, I advice you to look at Erlang/OTP stack.

Upvotes: 0

Related Questions