From 5eeaefdd634faa133bbd07b1ed9467069fd8ceb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Mon, 15 Apr 2024 08:16:46 +0200 Subject: [PATCH] refactors client sio event setup --- src/pydase/client/client.py | 45 +++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/pydase/client/client.py b/src/pydase/client/client.py index ac37f7d..70f00c6 100644 --- a/src/pydase/client/client.py +++ b/src/pydase/client/client.py @@ -79,27 +79,28 @@ class Client: ) async def _setup_events(self) -> None: - @self._sio.event - async def connect() -> None: - logger.debug("Connected to '%s:%s' ...", self._hostname, self._port) - serialized_object = cast( - SerializedDataService, await self._sio.call("service_serialization") - ) - ProxyLoader.update_data_service_proxy( - self.proxy, serialized_object=serialized_object - ) - serialized_object["type"] = "DeviceConnection" - self.proxy._notify_changed("", loads(serialized_object)) - self.proxy._connected = True + self._sio.on("connect", self._handle_connect) + self._sio.on("disconnect", self._handle_disconnect) + self._sio.on("notify", self._handle_update) - @self._sio.event - async def disconnect() -> None: - logger.debug("Disconnected from '%s:%s' ...", self._hostname, self._port) - self.proxy._connected = False + async def _handle_connect(self) -> None: + logger.debug("Connected to '%s:%s' ...", self._hostname, self._port) + serialized_object = cast( + SerializedDataService, await self._sio.call("service_serialization") + ) + ProxyLoader.update_data_service_proxy( + self.proxy, serialized_object=serialized_object + ) + serialized_object["type"] = "DeviceConnection" + self.proxy._notify_changed("", loads(serialized_object)) + self.proxy._connected = True - @self._sio.event - async def notify(data: NotifyDict) -> None: - self.proxy._notify_changed( - data["data"]["full_access_path"], - loads(data["data"]["value"]), - ) + async def _handle_disconnect(self) -> None: + logger.debug("Disconnected from '%s:%s' ...", self._hostname, self._port) + self.proxy._connected = False + + async def _handle_update(self, data: NotifyDict) -> None: + self.proxy._notify_changed( + data["data"]["full_access_path"], + loads(data["data"]["value"]), + )