upon seeing the work i’ve put into writing tutorials, showing how to get realtime chat working in django + twisted/websockets, you might make the assumption that i consider this architecture to be, in general, a good idea.
twisted’s implementation of websockets is, as of this writing, not integrated into the main branch.
don’t use code that isn’t considered, by its authors, to be reliable enough to merge into and release as part of their application distribution.
twisted is an event-driven networking engine
django is a solid, easy to use web framework
websockets, a tcp based protocol, is usually implemented as a strange mix between the tcp and http protocols
it is, generally speaking, not a good idea to mix abstraction levels; adding event-driven components to your application by combining twisted and django is a bad architectural decision. I strongly suggest you consider using twisted.web instead of mixing django and twisted.
websockets are a strange mix of protocols, and can be difficult to work with unless you are very careful with your choice of libraries and application design, scope and implementation. at the time of this post, i would recommend against using websockets, in production, with the standard deployment of twisted. i strongly urge you to consider the following alternatives, in rough order of likelihood to work for you:
- use autobahn
- look into using tornado. for example, try tornado + socketio. it’s probably your best alternative, if you’ve come this far
- look into using socket.io (eg, for django)
- look into pywebsocket