【问题标题】:"Connection is already closed." error with python WebSocket client“连接已经关闭。” python WebSocket客户端出错
【发布时间】:2017-06-06 18:07:42
【问题描述】:

我一直在尝试使用 python websocket-client 模块来接收和存储来自交换的持续更新。一般情况下,脚本会顺利运行一天左右,然后报如下错误:websocket._exceptions.WebSocketConnectionClosedException: Connection is already closed

我查看了 websocket-client 源代码,显然代码 if not bytes_: 在第 92 行引发了错误。此外,WebSocketConnectionClosedException 应该被提升为"If remote host closed the connection or some network error happened"

谁能告诉我为什么会发生这种情况,以及我可以做些什么来阻止或处理它。

【问题讨论】:

  • 请给我们一些代码。
  • 表示有人关闭了连接。你能重新建立它吗?我认为无论如何你都需要它来恢复弹性。
  • 你有没有找到解决这个问题的方法?我遇到了同样的问题。
  • 我想知道如何重现这个错误,因为这花了我很多钱。我认为添加一个检查,例如:try: ws.close() except: pass finally: self.connect() 会起作用,但 idk 还没有

标签: python websocket


【解决方案1】:

很可能,远程主机关闭了连接。你无法阻止它。重新连接即可处理。

运行网络服务器的人将实施自动清理以消除潜在的陈旧连接。关闭已打开 24 小时的连接听起来是一种明智的做法。而且没有什么坏处,因为如果客户端仍然感兴趣,它可以重新建立连接。如果需要验证,这对于重新验证客户端也很有用。

再想一想,也可能是网络断开。一些 DSL 提供商过去每 24 小时断开连接并重新分配一个新 IP,以防止用户在临时分配的 IP 地址上运行永久服务。不知道他们是否还在这样做。

【讨论】:

    猜你喜欢
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多