Supported versions
I could not get this to run on Django 1.4.1 (runserver --multithreaded even crashes) or on Django 1.3.1. The require_websocket views return an error-code 400.
What setup is supposed to work?
Apparently there have been some changes in the protocol... my browser (Google Chrome) doesn't work. In particular, I had to do lowercase comparison for 'websocket' in META['HTTP_UPGRADE'].
It seems that you are using META['wsgi.input']._sock.dup() which is not portable.
My version of Firefox (15.0) sends Connection: keep-alive, Upgrade which is also unexpected by websocket.py.
Chrome reports Error during WebSocket handshake: 'Sec-WebSocket-Accept' header is missing
Yeah. I like your idea from the other pull request, to use ws4py as WS implementation. The project will definitely will go down this road.
The runserver --multithreaded is broken, you're right. But Django 1.4 already uses multithreading in the development server by default. So I think we can safely remove the django-websockets runserver command.