starlette.websockets.WebSocketDisconnect

websockets.exceptions.ConnectionClosedOK : 这是websockets库抛出的异常,意味着WebSocket连接正常关闭。具体来说,错误码1001(going away)通常表示客户端离开了,比如用户关闭了浏览器窗口。

uvicorn.protocols.utils.ClientDisconnected : 这个异常是uvicorn抛出的,基于上一个异常。它表明客户端断开了连接。

starlette.websockets.WebSocketDisconnect : 最终,这导致了Starlette框架抛出WebSocketDisconnect异常,错误码1006指示了一个异常关闭,这通常意味着连接由于未知原因被终止,可能是由于网络问题或客户端突然断开。

这些异常表明在尝试通过WebSocket发送消息时,连接已经关闭。这可能是因为客户端意外断开连接,或者其他原因导致连接不稳定。

处理此类问题的一种方法是确保在尝试发送消息之前,连接确实是开启状态。此外,可以在服务器端添加异常处理来优雅地处理断开连接的情况。例如,你可以捕获WebSocketDisconnect异常,并执行一些清理操作或重连逻辑

from starlette.websockets import WebSocketDisconnect

async def websocket_endpoint(websocket):

try:

假设这里是你的WebSocket处理逻辑

await websocket.accept()

while True:

data = await websocket.receive_text()

await websocket.send_text(f"Message text was: {data}")

except WebSocketDisconnect:

print("WebSocket connection was closed")

这里可以添加一些清理代码或尝试重新连接的逻辑

相关推荐
python百炼成钢5 分钟前
解决——linux通过网络挂载tftp无法下载
linux·运维·网络
无奈笑天下9 分钟前
银河麒麟高级服务器版本【更换bond绑定的网卡】操作方法
linux·运维·服务器·arm开发·经验分享
深海里的鱼(・ω<)★19 分钟前
CentOS 7 默认 yum 源官方不维护解决方案
linux·运维·centos
猫头虎-人工智能23 分钟前
openEuler远程批量部署实战 SSH VNC IPMI全流程解析
运维·git·开源·ssh·github·开放原子·开源软件
weixin_3077791331 分钟前
Jenkins Metrics 插件全解析:从数据采集到智能监控的实践指南
运维·开发语言·架构·jenkins
gavin_gxh34 分钟前
SAP MM 采购订单号 excel上传 获取订单状态 审批 取消审批
运维·经验分享·其他
菜鸟小九35 分钟前
mysql运维(读写分离)
运维·数据库·mysql
菜鸟小九39 分钟前
mysql运维(分库分表)
运维·数据库·mysql
邪恶喵喵42 分钟前
nginx反向代理和负载均衡
运维·nginx·负载均衡
AI 搜索引擎技术43 分钟前
智能电网中的AI Agent负载均衡
运维·人工智能·ai·负载均衡