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")

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

相关推荐
IDC02_FEIYA21 分钟前
魔域服务器多少钱一个月?魔域服务器配置要求及推荐
运维·服务器
斯普信专业组28 分钟前
ELK 统一日志分析系统部署与实践指南(下)
运维·elk
AirDroid_cn1 小时前
Linux电脑怎样投屏到客厅的大电视?支持远程投屏吗?
linux·运维·电脑·电视·电脑投屏·投屏电视·远程投屏
滴滴滴嘟嘟嘟.2 小时前
嵌入式Linux RAMDisk驱动开发
linux·运维·驱动开发
FIT2CLOUD飞致云2 小时前
功能持续优化,应用商店新增CRM分类,1Panel v2.0.10版本正式发布
运维·开源
RUNNING123!2 小时前
华为eNSP防火墙综合网络结构训练.docx
运维·网络·华为·ssh
_flierx2 小时前
【Linux】进程信号
linux·运维·服务器
半梦半醒*3 小时前
ansible判断
linux·运维·centos·ansible·运维开发
2501_913981783 小时前
串口服务器技术详解:2025年行业标准与应用指南
运维·服务器·串口服务器
礼拜天没时间.3 小时前
Tomcat 企业级运维实战系列(三):Tomcat 配置解析与集群化部署
运维·centos·tomcat·firefox