django-sockjs-tromb är i grunden en tunn täckblad ovanpå sockjs-tromb som gör det döda lätt att skriva WebSocket baserade appar ovanpå sockjs WebSocket emulering bibliotek.
Med denna wrapper du i princip har tillgång till allt annat du behöver från din Django projekt som dina modeller och dina olika inställningar.
Eftersom du behöver för att köra två processer (en för runserver (eller wsgi) och en för socketserver) innebär det att de två verkligen är separata python processer så att du inte lätt kan göra saker som att registrera signaler och utlösa dem i en process och få dem brand i ett annat.
Komma igång
Skapa en klass någonstans som ser ut ungefär så här:
från sockjs.tornado import SockJSConnection
klass MyConnection (SockJSConnection):
& Nbsp; def on_open (själv, begäran):
& Nbsp; pass
& Nbsp; def on_message (själv, meddelande):
& Nbsp; pass
& Nbsp; def on_close (själv):
& Nbsp; pass
Sedan behöver du sätta loction av detta i en inställning i din settings.py ungefär så här:
SOCKJS_CLASSES = (
& Nbsp; 'myproject.myapp.myfile.MyConnection ",
)
Nästa, för att starta servern helt enkelt köra:
Python manage.py socketserver [--help]
Du kommer fortfarande att ha din vanliga django server för i en separat terminal:
python manage.py runserver
Nu bör du kunna skriva den saftiga Javascript använder sockjs-klient. Du kan börja med att ladda ner den senaste versionen minified från CDN.
En enkel app kan se ut så här:
strumpa = nya SockJS ('http: // localhost: 9999 / echo');
sock.onmessage = function (e) {
& Nbsp; console.log (e.data);
};
sock.onclose = function () {
& Nbsp; console.log ("stängt :( ');
};
sock.onopen = function () {
& Nbsp; console.log ('öppnas:>');
& Nbsp; letTheMadnessBegin ();
};
Funktionen letTheMadnessBegin () {
& Nbsp; // dumt, men du får idén
& Nbsp; sock.send (JSON.stringify ({
& Nbsp; namn:. $ ('# Namnet ") text (),
& Nbsp; meddelande:. $ ("Input") val ()
& Nbsp;}));
}
Få fantasi
Det finns en jävla massa fler saker du kan göra med detta förstås. Till exempel kanske du vill lägga till någon form av autentisering. Eftersom on_open handler får en begäran kan du använda den för att be om request.get_cookie (), som lämnas till läsaren som en övning.
Det är en något mer fantasi exempel ingår i detta paket under exempel som kan få dig några idéer. Det är en fullt fungerande chatt program som bara fungerar.
Detta paket bygger huvudsakligen på Servera Koval fantastiska arbete med sockjs-tromb som har massor av fler exempel och dokumentation som kan hjälpa dig. . Till exempel, listar den till en prov HAProxy konfiguration som du kan behöva när du tar ditt projekt lever eftersom du inte kan hålla utsätta port 9999 på ett produktionssystem
Krav :
- Python
- Django
Kommentarer hittades inte