# FastAPI WebSocket断开连接：代码=1006，原因=''

- **ID:** `python/fastapi-websocket-disconnect-error`
- **领域:** python
- **类别:** network_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

WebSocket连接被异常关闭，通常由于网络问题或客户端崩溃

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.x | active | — | — |

## 解决方案

1. **在WebSocket端点中捕获断开异常** (95% 成功率)
   ```
   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')
   ```
2. **实现自动重连逻辑** (85% 成功率)
   ```
   async def connect_with_retry():
    while True:
        try:
            await websocket.accept()
            break
        except WebSocketDisconnect:
            await asyncio.sleep(1)
   ```

## 无效尝试

- **尝试在WebSocket处理中忽略断开异常** — 忽略异常会导致无限循环或资源泄漏 (60% 失败率)
- **使用全局异常捕获所有异常** — WebSocketDisconnect是特定异常，全局捕获可能不处理 (40% 失败率)
