У меня есть подкласс asyncio.Protocol
class MyProtocol(Protocol):
def __init__(self, exit_future):
self.exit_future = exit_future
def connection_made(self, transport):
self.transport = transport
def data_received(self, data):
pass
def eof_received(self):
self.exit_future.set_result(True)
def connection_lost(self, exc):
self.exit_future.set_result(True)
и сетевое соединение, созданное с помощью
while True:
try:
exit_future = Future(loop=loop)
transport, protocol = await loop.create_connection(lambda: MyProtocol(exit_future), host, port)
await exit_future
transport.close()
except:
pass
Теперь вопрос: как я могу отправить некоторые данные о каком-то внешнем событии? Например, когда asyncio.Queue не пусто (queue.get не будет блокироваться), что заполняет эту очередь, не связанную с asyncio? Какой самый правильный способ вызова transport.write, когда что-то происходит?