У меня есть сервер, на котором выполняется цикл, который читает данные с устройства, и я хочу отправить их всем клиентам, которые подключаются через веб-сокет на торнадо.
Я попытался поместить цикл в функцию open, но затем он не может обработать функцию on_close или новые соединения.
Какая лучшая практика для этого?
#!/usr/bin/env python
import tornado.httpserver
import tornado.websocket
import tornado.ioloop
import tornado.web
import socket
class MyWebSocketServer(tornado.websocket.WebSocketHandler):
def open(self):
print('new connection'+self.request.remote_ip)
try:
while True:
'''
read and send data
'''
except Exception,error:
print "Error on Main: "+str(error)
def on_close(self):
print('connection closed'+self.request.remote_ip)
application=tornado.web.Application([(r'/ws',MyWebSocketServer),])
if __name__=="__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8000)
print('start')
tornado.ioloop.IOLoop.instance().start()
Спасибо