В моем файле python у меня есть два класса обработчиков: MainHandler (tornado.web.RequestHandler) и WebSocketHandler (tornado.web.WebSocketHandler).В классе MainHandler я делаю следующий код в методе get:
class MainHandler(tornado.web.RequestHandler):
#some code
def get(self):
#some code
mainHandler_dict[chan] = self
await self.finish() #line of code that would do the waiting somehow
Поэтому я сохраняю запрос в глобальном словаре, чтобы я мог вызывать request.write()
и request.finish()
в методе on_message
класс WebSocketHandler:
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def on_message(self, message):
#some code
request.write(body)
request.finish()
Я получаю переменную «request» из глобального словаря и пытаюсь вызвать write (), но возникает следующая ошибка: RuntimeError: Cannot write() after finish()
Я думаю finish()
вызывается автоматически после окончания метода get в классе MainHandler.Так есть ли способ для requestHandler продолжать "ждать", пока я не вызываю request.finish()
где-нибудь через файл?