From 358d2754ac359cb760ab9fa8ddfc69da62b2589c Mon Sep 17 00:00:00 2001 From: miro Date: Fri, 3 Jan 2025 02:53:54 +0000 Subject: [PATCH] fix:binarization_protocol handling typing correctly --- hivemind_bus_client/client.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hivemind_bus_client/client.py b/hivemind_bus_client/client.py index e8d1a6c..66793d2 100644 --- a/hivemind_bus_client/client.py +++ b/hivemind_bus_client/client.py @@ -294,8 +294,17 @@ def on_message(self, *args): if (isinstance(message, HiveMessage) and message.msg_type == HiveMessageType.BINARY): self._handle_binary(message) return - self.emitter.emit('message', message) # raw message - self._handle_hive_protocol(HiveMessage(**message)) + + if isinstance(message, HiveMessage): + self.emitter.emit('message', message.serialize()) # raw message + self._handle_hive_protocol(message) + elif isinstance(message, str): + self.emitter.emit('message', message) # raw message + self._handle_hive_protocol(HiveMessage(**json.loads(message))) + else: + assert isinstance(message, dict) + self.emitter.emit('message', json.dumps(message, ensure_ascii=False)) # raw message + self._handle_hive_protocol(HiveMessage(**message)) def _handle_binary(self, message: HiveMessage): assert message.msg_type == HiveMessageType.BINARY