python runtime_error ai_generated true

starlette.websockets.WebSocketDisconnect: code=1000, reason='Client disconnected'

ID: python/starlette-websocket-disconnect-message

Also available as: JSON · Markdown · 中文
80%Fix Rate
88%Confidence
0Evidence
2024-05-20First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.x active

Root Cause

WebSocket 客户端意外断开连接,服务器端未处理该异常。

generic

中文

WebSocket 客户端意外断开连接,服务器端未处理该异常。

Workarounds

  1. 98% success
    @app.websocket('/ws')
    async def ws_endpoint(websocket: WebSocket):
        await websocket.accept()
        try:
            while True:
                data = await websocket.receive_text()
        except WebSocketDisconnect:
            print('Client disconnected')
            # 清理资源

Dead Ends

Common approaches that don't work:

  1. 60% fail

    如果不处理,服务器会崩溃或挂起

  2. 90% fail

    客户端已经断开,重新连接需要客户端主动发起