sockjs-tornado er en Python server side modstykke til SockJS-klientbrowseren bibliotek kører på toppen af Tornado rammer.
Forenklet ekko SockJS serveren kunne se nogenlunde sådan ud:
fra tornado import web, ioloop
fra sockjs.tornado import SockJSRouter, SockJSConnection
klasse EchoConnection (SockJSConnection):
& Nbsp; def on_message (self, MSG):
& Nbsp; self.send (msg)
hvis __name__ == '__main__ «:
& Nbsp; EchoRouter = SockJSRouter (EchoConnection, '/ echo ")
& Nbsp; appen = web.Application (EchoRouter.urls)
& Nbsp; app.listen (9999)
& Nbsp;. Ioloop.IOLoop.instance () start ()
(Tage se på eksempler for en komplet udgave).
Abonner på SockJS postliste for diskussioner og support.
SockJS-tornado API
SockJS giver lidt anderledes API end _tornado.websocket_. De vigtigste forskelle er:
- Afhængig af transport, faktisk klientforbindelse måske eller måske ikke være der. Så der er ikke _self.request_ og andre _tornado.web.RequestHandler_ egenskaber.
- Ændret _open_ tilbagekald navn til _on_open_ at være mere i overensstemmelse med andre tilbagekald.
- I stedet for _write_message_ bliver alle sendt via _send_ metode. Just in case, _send_ i _tornado.web.RequestHandler_ sender rådata over forbindelsen, uden at der koder det.
- Der er praktisk _broadcast_ funktion, der accepterer liste (eller iterator) af kunder og budskab at sende.
Indstillinger
Du kan passere forskellige indstillinger til _SockJSRouter_, i en ordbog:
MyRouter = SockJSRouter (MinForbindelse, '/ min «, dict (disabled_transports = [' WebSocket ']))
Deployment
sockjs-tornado fungerer korrekt bag haproxy og det anbefales implementering tilgang.
Prøve konfigurationsfil kan findes her.
Hvis din log er fuld af "ADVARSEL: Forbindelse lukket af klienten", pass _no_keep_alive_ som _True_ til _HTTPServer_ konstruktør:
HTTPServer (app, no_keep_alive = True) • Lyt (port)
eller:
app.listen (port, no_keep_alive = True)
Hvad er nyt i denne udgivelse:
- Tilføjet understøttelse af ældre simplejson bibliotek versioner
- Fast installation script
Krav :
- Python
Kommentarer ikke fundet