From bde51ca5e19bb8f79e618864ffa51262d8bc2ae7 Mon Sep 17 00:00:00 2001 From: hasslesstech Date: Tue, 24 Mar 2026 16:57:29 +0200 Subject: [PATCH] [P] Fix Store -> MapView websocket incompatibility --- MapView/main.py | 2 +- store/main.py | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/MapView/main.py b/MapView/main.py index a93cfdb..1b108c6 100644 --- a/MapView/main.py +++ b/MapView/main.py @@ -32,7 +32,7 @@ class MapViewApp(App): Встановлює необхідні маркери, викликає функцію для оновлення мапи """ self.update() - Clock.schedule_interval(self.update, 5) + Clock.schedule_interval(self.update, 0.1) def update(self, *args): """ diff --git a/store/main.py b/store/main.py index e230c50..f871c1c 100644 --- a/store/main.py +++ b/store/main.py @@ -33,7 +33,7 @@ processed_agent_data = Table( ) # WebSocket subscriptions -subscriptions: Dict[int, Set[WebSocket]] = {} +subscriptions: Set[WebSocket] = set() # FastAPI WebSocket endpoint @@ -41,10 +41,7 @@ subscriptions: Dict[int, Set[WebSocket]] = {} async def websocket_endpoint(websocket: WebSocket, user_id: int): await websocket.accept() - if user_id not in subscriptions: - subscriptions[user_id] = set() - - subscriptions[user_id].add(websocket) + subscriptions.add(websocket) try: # send already available data @@ -62,14 +59,13 @@ async def websocket_endpoint(websocket: WebSocket, user_id: int): while True: await websocket.receive_text() except WebSocketDisconnect: - subscriptions[user_id].remove(websocket) + subscriptions.remove(websocket) # Function to send data to subscribed users -async def send_data_to_subscribers(user_id: int, data): - if user_id in subscriptions: - for websocket in subscriptions[user_id]: - await websocket.send_json(json.dumps(data)) +async def send_data_to_subscribers(data): + for websocket in subscriptions: + await websocket.send_json(json.dumps([data])) # FastAPI CRUDL endpoints @@ -101,7 +97,7 @@ async def create_processed_agent_data(data: List[ProcessedAgentData], user_id: i session.commit() for record in created_records: - await send_data_to_subscribers(user_id, jsonable_encoder(record)) + await send_data_to_subscribers(jsonable_encoder(record)) return created_records except Exception as err: session.rollback()