Как перезапустить binance threaded websocket после потери подключения к Интернету

#python #binance #binance-api-client

Вопрос:

Есть ли способ автоматически перезапустить binance ThreadedWebsocketManager при потере подключения к Интернету?

Комментарии:

1. @samuehertrich если вы решили проблему, не могли бы вы предоставить какой-нибудь код для того же самого. Я также борюсь с этим, так как у меня нет опыта асинхронного программирования, и, вероятно, потребуется некоторое время, чтобы разобраться в этом.

2. @pppp_prs К сожалению, я еще не пробовал, но как только у меня будет код, я опубликую его здесь.

Ответ №1:

Конечно, поскольку python-binance sdk перечисляет его как одну из своих функций:

Обработка Websocket с повторным подключением и мультиплексированными соединениями

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

P.S. Как автор вопроса попросил дополнительную информацию: я искал в репозитории python-binance на github фразу «переподключиться«, и первый результат указал мне, где вы ожидаете.

В своей последней версии(которая теперь читается как 0.7.10) они определили полный класс для этой цели, а именно class ReconnectingWebsocket на основе модуля python asyncio. Но в версии, к которой я привык(0.7.5), они использовали class ReconnectingClientFactory для этого пакет twisted.

… И чтобы увидеть, как они использовали этот класс, просто рекурсивно выполните поиск в их репозитории, пока не дойдете до того момента, когда они начнут использовать свои материалы, а не определять больше материалов!

В этом случае(версия 0.7.10) следующая фраза для поиска-это ReconnectingWebsocket, в котором появляется объявление class KeepAliveWebsocket(ReconnectingWebsocket): . Еще один поиск, чтобы узнать, что они делают, KeepAliveWebsocket показывает эту строку в тексте метода _get_account_socket class BinanceSocketManager , поэтому каждый раз, когда вы звоните get_account_socket , вы неявно реализуете функцию ReconnectingWebsocket автоматического повторного подключения функции python-binance.

Комментарии:

1. Не могу найти что-то подобное в исходном коде. Кто-нибудь может показать мне, где это?

2. @samuelhertrich Я отредактировал свой ответ, чтобы добавить больше информации.

3. Спасибо за ваш ответ, теперь мне просто нужно выяснить, куда это вставить в мой код…

4. @samuelhertrich, я добавил свою идею о том, как они используют класс ReconnectingWebsocket.