sockjs-tornado é um servidor lado homólogo Python da biblioteca navegador SockJS-cliente rodando em cima do quadro Tornado.
Simplificado servidor SockJS eco poderia olhar mais ou menos assim:
de tornado importação web, ioloop
de sockjs.tornado SockJSRouter importação, SockJSConnection
EchoConnection classe (SockJSConnection):
& Nbsp; def ON_MESSAGE (self, msg):
& Nbsp; self.send (msg)
se __name__ == '__main__':
& Nbsp; EchoRouter = SockJSRouter (EchoConnection, '/ echo')
& Nbsp; app = web.Application (EchoRouter.urls)
& Nbsp; app.listen (9999)
& Nbsp;. Ioloop.IOLoop.instance () start ()
(Dê uma olhada em exemplos para uma versão completa).
Inscreva-se na lista de discussão SockJS para discussões e apoio.
API SockJS-tornado
SockJS fornece API ligeiramente diferente do que _tornado.websocket_. As principais diferenças são:
- Dependendo de transporte, conexão de cliente real pode ou não estar lá. Assim, não há _self.request_ e outras propriedades _tornado.web.RequestHandler_.
- Mudou _open_ nome callback para _on_open_ a ser mais consistente com outras chamadas de retorno.
- Em vez de _write_message_, todas as mensagens são enviadas usando _send_ método. Apenas no caso, _send_ em _tornado.web.RequestHandler_ envia dados brutos sobre a ligação, sem que a codifica.
- Não é função _broadcast_ acessível, que lista (ou iterator) de clientes e aceita mensagem para enviar.
Configurações
Você pode passar várias definições para o _SockJSRouter_, em um dicionário:
MyRouter = SockJSRouter (MyConnection, '/ meu', dict (disabled_transports = ['websocket']))
Deployment
sockjs-tornado funciona corretamente atrás haproxy e recomenda-se abordagem de implantação.
Arquivo de configuração de exemplo pode ser encontrado aqui.
Se o log está cheio de "AVISO: Conexão fechada pelo cliente", passar _no_keep_alive_ como _True_ ao construtor _HTTPServer_:
HTTPServer (app, = True no_keep_alive) .listen (porta)
ou:
app.listen (porto, no_keep_alive = True)
O que é novo nesta versão:
- Adicionado suporte para mais velha biblioteca simplejson versões
- script de instalação fixa
Requisitos :
- Python
Comentários não encontrado