Здравствуйте!
Никак не получается реализовать следующую задумку:
Есть две корутины
1. Ждет сообщения от сервера и печатает ответ
async def handler(ws):
response = await ws.recv()
print(response)
2. Пингует сервер раз в 3 секунды
async def ping(ws):
await asyncio.sleep(3)
await ws.send(b'ping')
async def main():
loop = asyncio.new_event_loop()
async with websockets.connect('ws://127.0.0.1:8080/ws') as ws:
await ws.send('hello'.encode())
while True:
await handler(ws)
await ping(ws)
asyncio.run(main())
Проблема реализации в том, что ping берет весь контроль, и когда я отправляю сообщения handler их не обрабатывает до завершения asyncio.sleep внутри ping
Подскажите, как правильно реализовать такую логику. Заранее спасибо!