“连接已经关闭。” python WebSocket客户端出错

Posted

技术标签:

【中文标题】“连接已经关闭。” python WebSocket客户端出错【英文标题】:"Connection is already closed." error with python WebSocket client 【发布时间】: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 还没有 【参考方案1】:

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

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

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

【讨论】:

以上是关于“连接已经关闭。” python WebSocket客户端出错的主要内容,如果未能解决你的问题,请参考以下文章

websocke

websocke前世今生

websocke 在线测试地址

websocke 在线测试地址

httpWebRequest请求错误,基础连接已经关闭: 连接被意外关闭

怎样判定socket连接已经关闭