#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.