Я работаю над созданием веб-приложения с использованием торнадо версии 6.0.2. Я использую обработчик WebSocket для настройки соединения с клиентом.
Пример реализации на стороне сервера:
from tornado import websocket
import connectionhandler
class WebSocketHandler(websocket.WebSocketHandler):
def initialize(self, connectionhandler):
self.connectionhandler = connectionhandler
async def open(self):
print("WebSocket opened.")
await self.connectionhandler.connection_established_websocket()
async def on_close(self):
print("WebSocket closed.")
await self.connectionhandler.connection_closed_websocket()
Пример реализации на стороне клиента:
ws = websocket.create_connection("ws://localhost:80/ws?")
ws.close()
Когда клиент устанавливает соединение, он вызывает метод open, и все работает правильно.
Но когда клиент закрывает соединение, я получаю сообщение об ошибке on_close, которая никогда не ожидалась.
При удалении родной сопрограммы метод on_close работает.
Вопрос:
Как добавить собственные сопрограммы для метода on_close или вызвать асинхронный метод из on_close ()?