sockjs-tornado es un servidor contraparte lado Python de biblioteca navegador SockJS-cliente que se ejecuta en la parte superior del marco Tornado.
Simplificado servidor SockJS eco podría verse más o menos así:
de tornado web importación, ioloop
desde sockjs.tornado SockJSRouter importación, SockJSConnection
EchoConnection clase (SockJSConnection):
& Nbsp; def ON_MESSAGE (self, msg):
& Nbsp; self.send (msg)
if __name__ == '__main__':
& Nbsp; EchoRouter = SockJSRouter (EchoConnection, '/ echo')
& Nbsp; aplicación = web.Application (EchoRouter.urls)
& Nbsp; app.listen (9999)
& Nbsp;. Ioloop.IOLoop.instance start () ()
(Tome mirar ejemplos para una versión completa).
Suscríbete a SockJS lista de correo para discusiones y apoyo.
API SockJS-tornado
SockJS proporciona ligeramente diferente API que _tornado.websocket_. Las principales diferencias son:
- En función de transporte, la conexión real del cliente podría o no estar allí. Por lo tanto, no hay _self.request_ y otras propiedades _tornado.web.RequestHandler_.
- El cambio de nombre _open_ devolución de llamada para _on_open_ ser más consistente con otras devoluciones de llamada.
- En lugar de _write_message_, todos los mensajes se envían utilizando _send_ método. Por si acaso, _send_ en _tornado.web.RequestHandler_ envía datos en bruto sobre la conexión, sin que lo codifica.
- No es función _broadcast_ práctico, que acepta lista (o repetidor) de clientes y mensaje a enviar.
Configuración
Puede pasar varios ajustes a la _SockJSRouter_, en un diccionario:
Myrouter = SockJSRouter (MyConnection, '/ mi', dict (disabled_transports = ['WebSocket']))
Implementación
sockjs-tornado adecuadamente trabaja detrás haproxy y se recomienda el enfoque de implementación.
Archivo de configuración de ejemplo se puede encontrar aquí.
Si su registro está lleno de "ADVERTENCIA: Conexión cerrada por el cliente", pasar _no_keep_alive_ como _True_ a _HTTPServer_ constructor:
HTTPServer (aplicación, no_keep_alive = True) .listen (puerto)
o:
app.listen (puerto, no_keep_alive = True)
¿Qué hay de nuevo en esta versión:
- Se ha añadido soporte para la mayor biblioteca simplejson versiones
- script de instalación fija
Requisitos :
- Python
Comentarios que no se encuentran