| 123456789101112131415161718192021222324252627282930 |
- # -*- coding: utf-8 -*-
- from typing import List
- from fastapi import WebSocket
- class WebsocketManager:
- def __init__(self):
- # 存放激活的ws连接对象
- self._connections: List[WebSocket] = []
-
- async def connect(self, ws: WebSocket) -> None:
- # 等待连接
- await ws.accept()
- # 存储ws连接对象
- self._connections.append(ws)
-
- def disconnect(self, ws: WebSocket) -> None:
- # 关闭时 移除ws对象
- if ws in self._connections:
- self._connections.remove(ws)
-
- @staticmethod
- async def sendMessage(message: str, ws: WebSocket) -> None:
- # 发消息
- await ws.send_text(message)
-
- async def broadcast(self, message: str) -> None:
- # 广播消息
- for connection in self._connections:
- await connection.send_text(message)
|