Django-sockjs-tornado er i utgangspunktet en tynn wrapper på toppen av sockjs-tornado som gjør det døde lett å skrive WebSocket baserte applikasjoner på toppen av sockjs WebSocket emulering bibliotek.
Med denne wrapper utgangspunktet har du tilgang til alt annet du trenger fra din Django prosjekt som dine modeller og ulike innstillinger.
Fordi du må kjøre to prosesser (ett for runserver (eller wsgi) og ett for socketserver) det betyr at de to virkelig er separate python prosesser slik at du ikke kan lett gjøre ting som registrerer signaler og utløse dem i en prosess og ha dem brann i en annen.
Komme i gang
Lag en klasse et sted som ser omtrent slik ut:
fra sockjs.tornado import SockJSConnection
klasse MyConnection (SockJSConnection):
& Nbsp; def on_open (selv, forespørsel):
& Nbsp; pass
& Nbsp; def on_message (selv, melding):
& Nbsp; pass
& Nbsp; def on_close (egen-):
& Nbsp; pass
Deretter må du sette loction av dette i en innstilling i settings.py noe sånt som dette:
SOCKJS_CLASSES = (
& Nbsp; 'myproject.myapp.myfile.MyConnection',
)
Neste, for å starte serveren bare å kjøre:
python manage.py socketserver [help]
Du vil fortsatt ha din vanlige django serveren også i en egen terminal:
python manage.py runserver
Nå bør du være i stand til å skrive saftig Javascript-hjelp sockjs-klient. Du kan starte ved å laste ned den nyeste minified versjonen fra CDN.
En enkel app kan se slik ut:
sokk = nye SockJS ('http: // localhost: 9999 / echo');
sock.onmessage = function (e) {
& Nbsp; console.log (e.data);
};
sock.onclose = function () {
& Nbsp; console.log ('lukket :(');
};
sock.onopen = function () {
& Nbsp; console.log ('åpnet:>');
& Nbsp; letTheMadnessBegin ();
};
funksjon letTheMadnessBegin () {
& Nbsp; // dum, men du skjønner poenget
& Nbsp; sock.send (JSON.stringify ({
& Nbsp; navn:. $ ('# Name') tekst (),
& Nbsp; message:. $ ('Inngang') val ()
& Nbsp;}));
}
Komme fancy
Det er en shitload flere ting du kan gjøre med dette selvfølgelig. For eksempel vil du kanskje legge til noen form for autentisering. Siden on_open behandleren mottar en anmodning du kan bruke den til å be om request.get_cookie () som er overlatt til leseren som en øvelse.
Det er en litt mer fancy eksempel inkludert i denne pakken under eksempel som kan få deg noen ideer. Det er en fullt fungerende chat program som bare virker.
Denne pakken er bygget hovedsakelig på Serve Koval fantastiske arbeid på sockjs-tornado som har mange flere eksempler og dokumentasjon som kan hjelpe deg. . For eksempel viser det til en prøve HAProxy konfigurasjon som du kanskje trenger når du tar ditt prosjekt leve fordi du ikke kan holde utsette port 9999 på et produksjonssystem
Krav :
- Python
- Django
Kommentarer ikke funnet