Django-sockjs-tornado er dybest set en tynd wrapper ovenpå sockjs-tornado, som gør det døde nemt at skrive WebSocket baserede apps oven på sockjs WebSocket emulering bibliotek.
Med denne wrapper du dybest set har adgang til alt det andet du har brug for fra din Django projekt som dine modeller og dine forskellige indstillinger.
Fordi du har brug for at køre to processer (en for runserver (eller WSGI) og en for socketserver) betyder det, at de to virkelig er adskilte python processer, så du ikke kan nemt gøre ting som at registrere signaler og udløse dem i én proces og få dem brand i en anden.
Kom godt i gang
Opret en klasse et sted, der ser nogenlunde sådan her:
fra sockjs.tornado import SockJSConnection
klasse MinForbindelse (SockJSConnection):
& Nbsp; def on_open (self, anmodning):
& Nbsp; pass
& Nbsp; def on_message (self, meddelelse):
& Nbsp; pass
& Nbsp; def on_close (selv-):
& Nbsp; pass
Dernæst skal du sætte loction af dette i en indstilling i din settings.py noget som dette:
SOCKJS_CLASSES = (
& Nbsp; "myproject.myapp.myfile.MyConnection«,
)
Dernæst at starte serveren blot køre:
python manage.py socketserver [--help]
Du vil stadig have din almindelige django server også i en separat terminal:
python manage.py runserver
Nu skulle du være i stand til at skrive den saftige Javascript hjælp sockjs-klient. Du kan starte med at hente den nyeste minified version fra CDN.
En simpel app kan se sådan ud:
sok = nye SockJS ("http: // localhost: 9999 / echo ');
sock.onmessage = funktion (e) {
& Nbsp; console.log (e.data);
};
sock.onclose = function () {
& Nbsp; console.log ("lukket :( ');
};
sock.onopen = function () {
& Nbsp; console.log (åbnet:> ');
& Nbsp; letTheMadnessBegin ();
};
funktion letTheMadnessBegin () {
& Nbsp; // fjollet, men du får den ide
& Nbsp; sock.send (JSON.stringify ({
& Nbsp; navn:. $ ('# Navn ") tekst (),
& Nbsp; message:. $ ("Input") val ()
& Nbsp;}));
}
Kom fancy
Der er en shitload flere ting, du kan gøre med dette selvfølgelig. For eksempel kan du ønsker at tilføje en form for godkendelse. Da den on_open handleren modtager en anmodning kan du bruge den til at bede om request.get_cookie (), som er overladt til læseren som en øvelse.
Der er en lidt mere fancy eksempel inkluderet i denne pakke under eksempel, som kan få dig nogle ideer. Det er en fuldt fungerende chat program, der bare virker.
Denne pakke er bygget primært på Serve Koval fantastiske arbejde med sockjs-tornado, der har masser af flere eksempler og dokumentation, der kan hjælpe dig. . For eksempel er det lister til en prøve HAProxy konfiguration, som du måske har brug, når du tager dit projekt lever da du ikke kan holde udsætte port 9999 på et produktionssystem
Krav :
- Python
- Django
Kommentarer ikke fundet