Подключение к потоку после обрыва связи WebSocketApp

Я создал класс для получения потоковых данных с биржы. При обрыве связи появляется ошибка

[WinError 10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера

и соединение закрывается.

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

import threading
import websocket
import json
import time

streams = ['bnbbusd@bookTicker']

class MyWebSocket(threading.Thread):
    def __init__(self, streams):
        super(MyWebSocket, self).__init__(daemon = True)
        self.__streams = streams
        self.__ws = websocket.WebSocketApp("wss://stream.binance.com:9443/ws", on_open = self.__ws_open, 
                                                                               on_message = self.__ws_message, 
                                                                               on_error = self.__ws_error, 
                                                                               on_close = self.__ws_close)
        self.__update_streams_event = threading.Event()

    def run(self):
        self.__ws.run_forever()

    def __ws_error(self, __ws, err):
        print(err)

    def __ws_close(self, __ws, close_status_code, close_msg):
        print('Close', close_status_code, close_msg)

    def __ws_open(self, __ws):
        data = {
                        "method": "SUBSCRIBE",
                        "params": self.__streams,
                        "id": 1,
                    }
        self.__ws.send(json.dumps(data))

    def update_streams(self, streams):
        self.__streams = streams
        self.__update_streams_event.set()


    def __ws_message(self, __ws, message):
        msg = json.loads(message)
        print(msg)

        if self.__update_streams_event.is_set():
            self.__ws_open(self.__ws)
            self.__update_streams_event.clear()
            
def main():
    global streams
    th = MyWebSocket(streams)
    th.start()
    while True:
        time.sleep(5)
        print('--------', streams, len(streams))
        streams.append('btcbusd@bookTicker')
        streams = list(set(streams))
        th.update_streams(streams)


if __name__ == "__main__":
    main()

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