Почему мой websocket-клиент останавливает весь мой последующий код и что я могу с этим поделать?

#python #python-3.x #websocket

Вопрос:

Я настраиваю программу на python для извлечения данных о криптовалютах из binance, но веб-сайт, который я использую, приостанавливает весь код после его выполнения.

 import websockets
import websocket, json
import asyncio

def establishDefaultConnection():
    #websocket.enableTrace(True)
    def on_open(message):
        ws.send(loginStr)
        print("The default connection was opened")

    def pipeData(ws, message):
        print(message)

    def on_error(ws, message):
        print(message)

    def on_close(message):
        print("She gone")

    # Declare some variables
    socket = "wss://stream.binance.us:9443/stream?streams="
    loginStr = '{"method": "SUBSCRIBE","params": ["btcusd@kline_1m","btcusd@kline_3m"],"id": 1}'

    ws = websocket.WebSocketApp(socket, on_open=on_open, on_message=pipeData, on_error=on_error, on_close=on_close)
    ws.run_forever()

establishDefaultConnection())
print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Code was executed later>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
 

Команда печати никогда не будет выполняться, как и ничего после команды «ws.run_forever()». В этой документации по веб-сокетам эта команда называется циклом, но я не могу сказать, на чем она зацикливается.

Я попытался настроить асинхронную операцию, но это еще не сработало — хотя это может быть моей ошибкой, так как я все еще учусь использовать asyncio

Любая помощь здесь была бы очень признательна — я буду в сети в течение следующих 2 часов, чтобы немедленно ответить на вопросы или поговорить об этой проблеме.

РЕДАКТИРОВАТЬ: Я хочу отметить, что этот веб — сайт действительно работает-он отлично передает данные, но никакой другой код не запускается. Кроме того, любые комментарии по поводу моей методологии также будут оценены — опять же, я новичок в python и сетевом/асинхронном кодировании.