Spaces:
Paused
Paused
File size: 623 Bytes
731783b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | """
WebSocket connection manager
"""
from fastapi import WebSocket
class WebSocketManager:
def __init__(self):
self.connections = []
async def connect(self, websocket: WebSocket):
await websocket.accept()
self.connections.append(websocket)
def disconnect(self, websocket: WebSocket):
if websocket in self.connections:
self.connections.remove(websocket)
async def broadcast(self, message: dict):
for conn in list(self.connections):
try:
await conn.send_json(message)
except:
self.disconnect(conn) |