From 6b1932c8d913d57ecbb780d1be7b6b315d03e470 Mon Sep 17 00:00:00 2001 From: Ziad-I <68874104+Ziad-I@users.noreply.github.com> Date: Wed, 19 Jun 2024 18:31:42 +0300 Subject: [PATCH] add event listeners in sioserver.py added event listeners for sending csv data from blender and receiving operator data from web UI --- .../blenderbim/bim/data/webui/sioserver.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/data/webui/sioserver.py b/src/blenderbim/blenderbim/bim/data/webui/sioserver.py index 62f41b8382..28afb59456 100644 --- a/src/blenderbim/blenderbim/bim/data/webui/sioserver.py +++ b/src/blenderbim/blenderbim/bim/data/webui/sioserver.py @@ -2,8 +2,9 @@ import argparse from aiohttp import web import socketio import pystache +import json -sio_port = 8080 +sio_port = 8080 # default port sio = socketio.AsyncServer( cors_allowed_origins="*", @@ -34,6 +35,11 @@ class WebNamespace(socketio.AsyncNamespace): async def on_disconnect(self, sid): print(f"Web client disconnected: {sid}") + async def on_operator(self, sid, data): + print(f"Web client {sid} operator: {data}") + json_data = json.loads(data) + await sio.emit("web_operator", json_data, namespace="/blender", room=json_data["blenderId"]) + # Blender namespace class BlenderNamespace(socketio.AsyncNamespace): @@ -58,6 +64,17 @@ class BlenderNamespace(socketio.AsyncNamespace): blender_messages[sid] = data await sio.emit("blender_data", {"blenderId": sid, "data": data}, namespace="/web") + async def on_default_data(self, sid, data): + print(f"Default data from Blender client {sid}: {data}") + # blender_messages[sid] = data + # await sio.emit("blender_data", {"blenderId": sid, "data": data}, namespace="/web") + + async def on_csv_data(self, sid, data): + print(f"CSV data from Blender client {sid}: {data}") + # Store the message and forward it to the web client + blender_messages[sid] = data + await sio.emit("csv_data", {"blenderId": sid, "data": data}, namespace="/web") + # Attach namespaces sio.register_namespace(WebNamespace("/web"))