You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: hivemind_bus_client/client.py
+17-10Lines changed: 17 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -234,6 +234,12 @@ def on_close(self, *args):
234
234
super().on_close(*args)
235
235
236
236
defwait_for_handshake(self, timeout=5):
237
+
"""
238
+
Waits for the HiveMind handshake to complete; if the handshake is not set and the websocket connection is open, starts the handshake, otherwise waits for the websocket to open and retries.
239
+
240
+
Parameters:
241
+
timeout (float): Number of seconds to wait for each handshake or connection attempt before retrying.
Send a HiveMessage or MycroftMessage to the HiveMind network, injecting routing context for BUS messages and optionally sending binary payloads.
344
-
349
+
Send a HiveMind message (or wrap and send a MycroftMessage) and optionally transmit it as a binary payload.
350
+
345
351
Parameters:
346
-
message (MycroftMessage | HiveMessage): The message to send. If a MycroftMessage is provided it will be wrapped into a BUS HiveMessage.
347
-
binary_type (HiveMindBinaryPayloadType): When sending binary payloads, indicates the binary payload subtype; defaults to UNDEFINED.
348
-
349
-
Notes:
350
-
- For messages with msg_type == HiveMessageType.BUS, the function will ensure the payload.context contains routing fields (source, platform, destination, session) and will emit the payload to the client's internal bus before sending.
351
-
- This method transmits the message over the client's WebSocket and may perform serialization, optional compression, and optional encryption depending on client configuration.
352
-
352
+
message (MycroftMessage | HiveMessage): The outgoing message. A MycroftMessage will be wrapped into a BUS HiveMessage.
353
+
binary_type (HiveMindBinaryPayloadType): Binary payload subtype to use when sending BINARY messages; defaults to UNDEFINED.
354
+
355
+
Behavior:
356
+
- For BUS messages, ensures payload.context contains routing fields (source, platform, destination, session_id, site_id) and emits the payload to the client's internal bus before sending.
357
+
- Chooses binary or text transport according to message type and client configuration; the payload may be compressed and/or encrypted based on client settings.
358
+
353
359
Raises:
354
-
ValueError: If the client has not been started with run_forever() and the connection is not ready.
360
+
ValueError: If the client has not been started (run_forever() not executed) and therefore cannot send messages.
361
+
RuntimeError: If the client was started but the websocket connection did not open within the wait period, preventing the message from being sent.
0 commit comments