Пример Binance API с SubscriptionClient не завершается / завершается после завершения - PullRequest
0 голосов
/ 27 марта 2020

У меня есть этот простой пример из официального Binance Futures API , который я запускаю в VS Code. Он создает веб-сокет и получает от него данные:

import logging
from binance_f import SubscriptionClient
from binance_f.constant.test import *
from binance_f.model import *
from binance_f.exception.binanceapiexception import BinanceApiException

from binance_f.base.printobject import *

logger = logging.getLogger("binance-futures")
logger.setLevel(level=logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)

sub_client = SubscriptionClient(api_key=g_api_key, secret_key=g_secret_key)

def error(e: 'BinanceApiException'):
    print(e.error_code + e.error_message)

def callback(data_type: 'SubscribeMessageType', event: 'any'):
    if data_type == SubscribeMessageType.RESPONSE:
        print("Event ID: ", event)
    elif  data_type == SubscribeMessageType.PAYLOAD:
        PrintBasic.print_obj(event)
        sub_client.unsubscribe_all()  
    else:
        print("Unknown Data:")
    print()

sub_client.subscribe_symbol_ticker_event("btcusdt", callback, error)

Подписка работает, я получаю данные из API. Но после sub_client.unsubscribe_all () больше ничего не происходит - скрипт не возвращается в командную строку терминала. Это просто висит там. Ctrl + C, Ctr + X, Ctrl + Break, ничего не работает.

Я должен жестоко бросить Терминал в корзину - даже это иногда приводит к зависанию VSCode. Выполнение примера из обычного windows cmd дает тот же результат.

Вот как это выглядит в VsCode:

enter image description here

Кто-нибудь знает, что вызывает такое поведение и как вернуться в командную строку ? Или как использовать клиента в реальном мире?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...