Переподключение к websocket

Нужно организовать автоматическое переподключение веб-сокета от любых ошибок, как со стороны сервера, так и от стороны клиента, в случае если сокет оборвал подключение попробовать восстановить его раз в 5 секунд.

Cейчас код моей программы выглядит вот так: (но когда подключение обрывается, powershell через которую я запускаю код просто закрывается)

import aiohttp
from fake_useragent import UserAgent

ua = UserAgent()

HEADERS = {
    "Origin": "http://test",
    "Cookie": "language=en; type_device=desktop; currency=USD;"
}

async def start_ws():
    HEADERS["User-Agent"] = ua.random
    print("bot started")
    async with aiohttp.ClientSession(headers=HEADERS) as session:
        async with session.ws_connect('wss://test/ws') as ws:
            async for msg in ws:
                await ws_message(msg.data)

async def ws_message(message):
    print(message)

if __name__ == '__main__':
    await start_ws()

Ответы (1 шт):

Автор решения: Kers

Попробуйте через обработку исключений и перезапуск в цикле:

import asyncio
import time

# --- Ваш код ---

if __name__ == '__main__':
    # await start_ws()
    while True:
        try:
            asyncio.run(start_ws())
        except Exception as e:
            print(">> Вылет: ", e)
            time.sleep(5)
→ Ссылка