connect_manager.py 742 B

123456789101112131415161718192021
  1. from models import WebSocket
  2. from logger import logger
  3. class ConnectionManager:
  4. def __init__(self):
  5. self.active_connections: list[WebSocket] = []
  6. async def connect(self, websocket: WebSocket):
  7. await websocket.accept()
  8. self.active_connections.append(websocket)
  9. logger.info("socket 已连接")
  10. def disconnect(self, websocket: WebSocket):
  11. self.active_connections.remove(websocket)
  12. logger.info("socket 连接断开")
  13. async def send_personal_message(self, message: str, websocket: WebSocket):
  14. await websocket.send_json(message)
  15. async def broadcast(self, message: str):
  16. for connection in self.active_connections:
  17. await connection.send_json(message)