You need to enable JavaScript to run this app. Python websockets调整缩进后上下文管理器关闭连接报错原因咨询
优惠活动
大模型
产品
解决方案
定价
更多

Python websockets调整缩进后上下文管理器关闭连接报错原因咨询

问题根因

这个异常和你缩进是否正确没有关系,是WebSocket服务端主动断开了长连接,才触发了连接关闭的报错。

你第一种写法的逻辑是每次循环都新建一次WebSocket连接,发完消息就退出async with块自动断开连接,刚好适配了很多测试用WebSocket服务端「处理完单条消息就主动关闭连接」的逻辑,所以运行起来不会报错。

第二种写法复用同一个长连接循环发消息,当服务端处理完第一条消息主动断开连接后,第二次执行await ws.send()时会检测到连接已经被对端正常关闭,就会抛出ConnectionClosedOK异常,其中状态码1000就是对端正常关闭连接的标识。

常见触发原因

  • 你用的测试服务端本身是单消息处理逻辑:收到一条消息返回后就直接关闭连接,不支持长连接
  • 服务端配置了极短的空闲超时:你两次发消息间隔1秒,超过了服务端允许的最长空闲时间,触发了服务端的主动断连

解决方案

如果要实现长连接循环发消息的效果,需要对应调整服务端逻辑:

  1. 修改服务端代码,保持连接不主动关闭,适配长连接需求
  2. 如果服务端有空闲超时限制,可以在两次发消息的间隙发送ping包做连接保活

内容的提问来源于stack exchange,提问作者abraguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 13:06:03