【问题标题】:autoreconnect for aiohttp websocketaiohttp websocket 的自动重新连接
【发布时间】:2017-12-04 20:48:53
【问题描述】:

我正在编写一个应用程序来监听 websocket 连接并发出不频繁的 REST 请求。 aiohttp 似乎是一个自然的选择,但我很灵活。该应用程序很简单,但需要可靠(每天收集千兆字节的数据,同时最大限度地减少数据丢失)。

使用 aiohttp 处理连接丢失的最佳方法是什么?我注意到其他一些其他 Python 库具有可用的自动重新连接选项。使用 aiohttp,我总是可以通过循环手动实现这一点(一旦连接丢失就重新开始),但我不知道最佳实践是什么(是否可以继续尝试重新连接而不延迟循环?) .

【问题讨论】:

    标签: python-3.x websocket python-asyncio aiohttp


    【解决方案1】:
    1. aiohtp 是一个相对底层的库,自动重连应该建立在它之上。
    2. Websocket 连接在 aiohttp 中是非阻塞操作。
    3. 可靠的 websocket 重新连接并非易事。也许您需要知道对等方收到或不收到哪些数据——这取决于。在第一种情况下,您需要在普通 websocket 之上使用一些高级协议来发送确认等。

    【讨论】:

    • 1) 好的,我可以将 aiohttp 用于 REST 请求,并将更高级别的库用于 websockets。 3) 无论提供什么,我都可以使用 ping/pong 或跟踪序列号。但是我的问题是,一旦检测到丢失该怎么办:如果我使用 aiohttp,我似乎需要编写自己的重新连接。
    • 是的,完全正确。 aiohttp 没有重连功能,超出了库的范围。
    猜你喜欢
    • 1970-01-01
    • 2022-08-05
    • 2021-01-20
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多