python
network_error
ai_generated
true
FastAPI WebSocket断开连接:代码=1006,原因=''
fastapi.WebSocketDisconnect: code=1006, reason=''
ID: python/fastapi-websocket-disconnect-error
80%修复率
82%置信度
0证据数
2024-07-25首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.x | active | — | — | — |
根因分析
WebSocket连接被异常关闭,通常由于网络问题或客户端崩溃
English
WebSocket连接被异常关闭,通常由于网络问题或客户端崩溃
解决方案
-
95% 成功率 在WebSocket端点中捕获断开异常
from fastapi import WebSocketDisconnect async def websocket_endpoint(websocket: WebSocket): await websocket.accept() try: while True: data = await websocket.receive_text() except WebSocketDisconnect: print('Client disconnected') -
85% 成功率 实现自动重连逻辑
async def connect_with_retry(): while True: try: await websocket.accept() break except WebSocketDisconnect: await asyncio.sleep(1)
无效尝试
常见但无效的做法:
-
尝试在WebSocket处理中忽略断开异常
60% 失败
忽略异常会导致无限循环或资源泄漏
-
使用全局异常捕获所有异常
40% 失败
WebSocketDisconnect是特定异常,全局捕获可能不处理