Присоединение к нескольким websocket на jupyter notebook
Пытаюсь получить данные с нескольких websocket и обработать их с использованием jupyter notebook. Проблема - сбор данных идет только с одного сокета, другие куски программы не выполняются, в частности со второго сокета данные не берутся. Код сейчас такой
session1 = aiohttp.ClientSession()
session2 = aiohttp.ClientSession()
async with session1.ws_connect('host1') as ws1:
async for msg1 in ws1:
print(msg1.data)
await asyncio.sleep(5)
async with session2.ws_connect('host2') as ws2:
async for msg2 in ws2:
print(msg2.data)
await asyncio.sleep(5)
Ответы (1 шт):
Автор решения: kigudesm
→ Ссылка
import asyncio
import aiohttp
urls = [host1, host2, ...]
async def websocket(url):
session = aiohttp.ClientSession()
async with session.ws_connect(url) as ws:
async for msg in ws:
print(msg.data)
loop = asyncio.get_event_loop()
tasks = [websocket(url) for url in urls]
loop.run_until_complete(asyncio.wait(tasks))