Присоединение к нескольким 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))
→ Ссылка