from fastapi import WebSocket, WebSocketDisconnect from app.ws.manager import manager import uuid async def websocket_handler(websocket: WebSocket): client_id = str(uuid.uuid4()) await manager.connect(websocket, client_id) try: while True: data = await websocket.receive() if "text" in data: message = data["text"] await manager.send_personal_message(f"You said: {message}", client_id) await manager.broadcast(f"Client {client_id} said: {message}") elif "bytes" in data: # 处理二进制消息 await websocket.send_bytes(data["bytes"]) except WebSocketDisconnect: manager.disconnect(client_id) await manager.broadcast(f"Client {client_id} disconnected")