mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-26 07:31:22 +01:00
28 lines
875 B
Python
28 lines
875 B
Python
|
from fastapi import WebSocket
|
||
|
from loguru import logger
|
||
|
|
||
|
|
||
|
class WebsocketConnectionManager:
|
||
|
def __init__(self) -> None:
|
||
|
self.active_connections: list[WebSocket] = []
|
||
|
|
||
|
async def connect(self, websocket: WebSocket, item_id: str):
|
||
|
logger.debug(f"Websocket connected to {item_id}")
|
||
|
await websocket.accept()
|
||
|
self.active_connections.append(websocket)
|
||
|
|
||
|
def disconnect(self, websocket: WebSocket):
|
||
|
self.active_connections.remove(websocket)
|
||
|
|
||
|
async def send_data(self, message: str, item_id: str):
|
||
|
for connection in self.active_connections:
|
||
|
if connection.path_params["item_id"] == item_id:
|
||
|
await connection.send_text(message)
|
||
|
|
||
|
|
||
|
websocket_manager = WebsocketConnectionManager()
|
||
|
|
||
|
|
||
|
async def websocket_updater(item_id: str, data: str):
|
||
|
return await websocket_manager.send_data(data, item_id)
|