Gestionarea Deconectărilor cu WebSocketDisconnect în FastAPI

websockets FastAPI 0.110+ / Starlette Q&A / Distribuie cod

Interceptarea închiderii conexiunii WebSocket de către client (închiderea tab-ului, pierderea rețelei) și eliberarea resurselor.

Sintaxă
try: ... except WebSocketDisconnect: manager.disconnect(websocket)

Când un client închide tab-ul din browser sau pierde conexiunea la internet, apelul await websocket.receive_text() aruncă o excepție WebSocketDisconnect.

Este esențial să încapsulezi bucla de comunicare într-un bloc try...except WebSocketDisconnect pentru a curăța socket-ul din lista conexiunilor active și a notifica restul utilizatorilor că respectivul client a părăsit sesiunea.

Exemplu: Tratarea elegantă a deconectării unui client WebSocket
from fastapi import FastAPI, WebSocket, WebSocketDisconnect

app = FastAPI()

@app.websocket("/ws/status/{client_id}")
async def client_status_ws(websocket: WebSocket, client_id: str):
    await websocket.accept()
    print(f"Client conectat: {client_id}")
    try:
        while True:
            msg = await websocket.receive_text()
            print(f"[{client_id}] {msg}")
    except WebSocketDisconnect:
        print(f"Clientul {client_id} s-a deconectat ordonat.")

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Gestionarea Deconectărilor cu WebSocketDisconnect

Ai o nelămurire despre utilizarea comenzii Gestionarea Deconectărilor cu WebSocketDisconnect sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.