from __future__ import annotations from fastapi import WebSocket, WebSocketDisconnect from backend.services.broadcaster import Broadcaster async def websocket_handler(ws: WebSocket, broadcaster: Broadcaster) -> None: await ws.accept() await broadcaster.add(ws) try: while True: await ws.receive_text() except WebSocketDisconnect: # 客户端正常断开连接,无需打印堆栈信息 pass finally: await broadcaster.remove(ws)