From b0fe30c5977276da1e51343d4f28dc2c80b4b837 Mon Sep 17 00:00:00 2001 From: Ziad-I <68874104+Ziad-I@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:48:01 +0300 Subject: [PATCH] add caching of blender messages --- .../blenderbim/bim/data/webui/sioserver.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/data/webui/sioserver.py b/src/blenderbim/blenderbim/bim/data/webui/sioserver.py index b497c456be..c7003576ff 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/sioserver.py +++ b/src/blenderbim/blenderbim/bim/data/webui/sioserver.py @@ -29,6 +29,8 @@ sio = socketio.AsyncServer( app = web.Application() sio.attach(app) + +# represents a caching for blender messages blender_messages = {} @@ -39,6 +41,8 @@ class WebNamespace(socketio.AsyncNamespace): async def on_connect(self, sid, environ): print(f"Web client connected: {sid}") + if blender_messages: + await self.send_cached_messages(sid) async def on_disconnect(self, sid): print(f"Web client disconnected: {sid}") @@ -51,6 +55,14 @@ class WebNamespace(socketio.AsyncNamespace): room=data["blenderId"], ) + async def send_cached_messages(self, sid): + # Send cached messages to the connected web client + for blenderId, messages in blender_messages.items(): + if "csv_data" in messages: + await self.emit("csv_data", {"blenderId": blenderId, "data": messages["csv_data"]}, room=sid) + if "gantt_data" in messages: + await self.emit("gantt_data", {"blenderId": blenderId, "data": messages["gantt_data"]}, room=sid) + # Blender namespace class BlenderNamespace(socketio.AsyncNamespace):