【问题标题】:How to restart binance threaded websocket after losing internet connection失去互联网连接后如何重新启动binance线程websocket
【发布时间】:2021-08-11 10:13:28
【问题描述】:

有没有办法在网络断开时自动重启币安ThreadedWebsocketManager

【问题讨论】:

  • @samuehertrich 如果您已经解决了这个问题,能否请您提供一些相同的代码。我也在为此苦苦挣扎,因为我没有异步编程背景,可能需要一些时间才能弄清楚出来。
  • @pppp_prs 不幸的是我还没有尝试过,但是一旦我有代码我就会在这里发布。

标签: python binance binance-api-client


【解决方案1】:

当然,因为 python-binance sdk 将其列为 features 之一:

使用重新连接和多路连接的 Websocket 处理

由于它们是一个开源项目,因此查看它们的源代码可能会有所帮助。

附:正如问题作者询问更多信息:我在 python-binance 的 github 存储库中搜索了短语 reconnect 和第一个结果 pointed me 到您期望的位置。

在他们的最新版本(现在为 0.7.10)中,他们为此定义了一个完整的类,即基于 python asyncio 模块的class ReconnectingWebsocket。但在我习惯的版本(0.7.5)中,他们使用 twisted 包中的class ReconnectingClientFactory 来完成此操作。

...要了解他们是如何使用这个类的,只需递归搜索他们的存储库,直到他们开始使用他们的东西而不是定义更多东西!

在这种情况下(版本 0.7.10),下一个要搜索的短语是 ReconnectingWebsocket,它会显示 class KeepAliveWebsocket(ReconnectingWebsocket): 的声明。再搜索一下,看看他们在用KeepAliveWebsocket 做什么,在class BinanceSocketManager 的方法_get_account_socket 的主体中显示this line,所以每次调用get_account_socket 时,您都在隐式实现ReconnectingWebsocket 的功能享受python-binance的自动重连功能。

【讨论】:

  • 在源代码中找不到类似的东西。谁能告诉我它在哪里?
  • @samuelhertrich 我已经编辑了答案以添加更多信息。
  • 感谢您的回答,现在我只需要弄清楚将其放入我的代码的哪个位置...
  • @samuelhertrich,我已经添加了关于他们如何使用 ReconnectingWebsocket 类的想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-17
  • 2018-12-16
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多