django-sockjs-tornado es básicamente un recubrimiento delgado en la parte superior de sockjs-tornado que hace que sea muerto fácil escribir aplicaciones basadas WebSocket en la parte superior de la biblioteca de emulación sockjs WebSocket.
Con este contenedor que básicamente tienen acceso a todo lo que necesita de su proyecto de Django como su modelos y sus diversos ajustes.
Debido a que usted necesita para ejecutar dos procesos (uno para runserver (o WSGI) y otro para socketserver), significa que los dos realmente son procesos pitón separadas para que no se puede hacer fácilmente cosas como registrar señales y desencadenar en un proceso y tenerlos fuego en otro.
Introducción
Crear un algún lugar de clase que se ve algo como esto:
desde sockjs.tornado SockJSConnection importación
MyConnection clase (SockJSConnection):
& Nbsp; def on_open (self, petición):
& Nbsp; pase
& Nbsp; def ON_MESSAGE (self, mensaje):
& Nbsp; pase
& Nbsp; def on_close (self):
& Nbsp; pase
A continuación, es necesario poner el loction de esto en un entorno en el settings.py algo como esto:
SOCKJS_CLASSES = (
& Nbsp; "myproject.myapp.myfile.MyConnection ',
)
A continuación, para iniciar el servidor sólo tiene que ejecutar:
python manage.py socketserver [--help]
Usted todavía tiene su servidor Django regulares también en una terminal separada:
python manage.py runserver
Ahora usted debería ser capaz de escribir la jugosa Javascript usando sockjs-cliente. Usted puede comenzar a descargar la última versión miniaturizada de la CDN.
Una aplicación sencilla podría tener este aspecto:
calcetín = nuevos SockJS ('http: // localhost: 9999 / echo');
sock.onmessage = function (e) {
& Nbsp; console.log (e.data);
};
sock.onclose = function () {
& Nbsp; console.log ('cerrado :(');
};
sock.onopen = function () {
& Nbsp; console.log ('abrió:>');
& Nbsp; letTheMadnessBegin ();
};
letTheMadnessBegin function () {
& Nbsp; // tonto, pero usted consigue la idea
& Nbsp; sock.send (JSON.stringify ({
& Nbsp; nombre:. $ ('# Nombre') texto (),
& Nbsp; de mensajes:. $ ("Input") val ()
& Nbsp;}));
}
Cómo fantasía
Hay un chingo más cosas que puedes hacer con esto, por supuesto. Por ejemplo, es posible que desee agregar algún tipo de autenticación. Desde que el manejador on_open recibe una petición se puede usar eso para pedir request.get_cookie () que se deja al lector como ejercicio.
Hay un ejemplo un poco más de lujo incluido en este paquete en el ejemplo que podría obtener algunas ideas. Es una aplicación de chat completamente de trabajo que simplemente funciona.
Este paquete se basa principalmente en servir un trabajo increíble de Koval en sockjs-tornado que tiene un montón de más ejemplos y documentación que le pueden ayudar. . Por ejemplo, enumera a una configuración HAProxy muestra de que es posible que necesite una vez que tome su proyecto en vivo ya que no puedes mantener la exposición de puerto 9999 en un sistema de producción
Requisitos :
- Python
- Django
Comentarios que no se encuentran