MCPcopy Create free account
hub / github.com/CJackHwang/AIstudioProxyAPI / broadcast

Method broadcast

models/logging.py:72–98  ·  view source on GitHub ↗
(self, message: str)

Source from the content-addressed store, hash-verified

70 logger.info(f"WebSocket logging client disconnected: {client_id}")
71
72 async def broadcast(self, message: str):
73 if not self.active_connections:
74 return
75 disconnected_clients: List[str] = []
76 active_conns_copy = list(self.active_connections.items())
77 logger = logging.getLogger("AIStudioProxyServer")
78 for client_id, connection in active_conns_copy:
79 try:
80 await connection.send_text(message)
81 except WebSocketDisconnect:
82 logger.info(f"[WS Broadcast] Client {client_id} disconnected during broadcast.")
83 disconnected_clients.append(client_id)
84 except RuntimeError as e:
85 if "Connection is closed" in str(e):
86 logger.info(f"[WS Broadcast] Connection for client {client_id} is closed.")
87 disconnected_clients.append(client_id)
88 else:
89 logger.error(f"Runtime error broadcasting to WebSocket {client_id}: {e}")
90 disconnected_clients.append(client_id)
91 except asyncio.CancelledError:
92 raise
93 except Exception as e:
94 logger.error(f"Unknown error broadcasting to WebSocket {client_id}: {e}")
95 disconnected_clients.append(client_id)
96 if disconnected_clients:
97 for client_id_to_remove in disconnected_clients:
98 self.disconnect(client_id_to_remove)
99
100
101class WebSocketLogHandler(logging.Handler):

Calls 3

disconnectMethod · 0.95
infoMethod · 0.80
errorMethod · 0.80