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.")
Întrebări & Exemple de Cod:
Gestionarea Deconectărilor cu WebSocketDisconnectAi o nelămurire despre utilizarea comenzii
Gestionarea Deconectărilor cu WebSocketDisconnectsau 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.