sockjs-tornado är en Python serversidan motsvarighet SockJS-klientwebbläsaren bibliotek körs ovanpå Tornado ramverk.
Förenklad echo SockJS server kunde se mer eller mindre som:
från tornado import webben, ioloop
från sockjs.tornado import SockJSRouter, SockJSConnection
klass EchoConnection (SockJSConnection):
& Nbsp; def on_message (själv, msg):
& Nbsp; self.send (msg)
om __name__ == '__main__':
& Nbsp; EchoRouter = SockJSRouter (EchoConnection, '/ echo')
& Nbsp; appen = web.Application (EchoRouter.urls)
& Nbsp; app.listen (9999)
& Nbsp;. Ioloop.IOLoop.instance () start ()
(Ta titta på exempel för en komplett version).
Prenumerera på SockJS sändlista för diskussioner och support.
SockJS-tornado API
SockJS ger något annorlunda API än _tornado.websocket_. Viktigaste skillnaderna är:
- Beroende på transporter, faktiska klientanslutning kanske eller kanske inte vara där. Så, det finns ingen _self.request_ och andra _tornado.web.RequestHandler_ egenskaper.
- Ändrad _open_ callback namn _on_open_ vara mer i linje med andra återbesök.
- Istället för _write_message_, sänds alla meddelanden med hjälp _send_ metod. Just i fallet, skickar _send_ i _tornado.web.RequestHandler_ rådata över anslutningen, utan kodning det.
- Det är praktiskt _broadcast_ funktion, som accepterar listan (eller iterator) av kunder och budskap för att skicka.
Inställningar
Du kan skicka olika inställningar till _SockJSRouter_, i en ordbok:
MyRouter = SockJSRouter (MyConnection, '/ min ", dict (disabled_transports = [' WebSocket ']))
Deployment
sockjs-tornado fungerar bakom haproxy och det rekommenderas driftsättning tillvägagångssätt.
Prov konfigurationsfil finns här.
Om din logg är full av "VARNING: Anslutning stängd av kunden", passera _no_keep_alive_ som _True_ till _HTTPServer_ konstruktorn:
Httpserver (app, no_keep_alive = sant) .listen (port)
eller:
app.listen (port, no_keep_alive = sant)
Vad är nytt i den här versionen:
- Stöd för äldre simplejson bibliotek versioner
- Fast installation script
Krav :
- Python
Kommentarer hittades inte