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
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
-
239
+
240
240
Parameters:
241
241
timeout (float): Number of seconds to wait for each handshake or connection attempt before retrying.
242
242
"""
243
243
self.handshake_event.wait(timeout=timeout)
244
244
ifnotself.handshake_event.is_set():
245
+
ifmax_retries<=0:
246
+
raiseRuntimeError("timed out waiting for handshake")
245
247
ifself.connected_event.is_set():
246
248
self.protocol.start_handshake()
247
249
else:
248
250
LOG.warning("Can't start handshake because websocket connection is not yet open...")
Send a HiveMind message (or wrap and send a MycroftMessage) and optionally transmit it as a binary payload.
350
-
351
+
Send a HiveMessage or MycroftMessage to the HiveMind network, injecting routing context for BUS messages and optionally sending binary payloads.
352
+
351
353
Parameters:
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
-
354
+
message (MycroftMessage | HiveMessage): The message to send. If a MycroftMessage is provided it will be wrapped into a BUS HiveMessage.
355
+
binary_type (HiveMindBinaryPayloadType): When sending binary payloads, indicates the binary payload subtype; defaults to UNDEFINED.
356
+
357
+
Notes:
358
+
- 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.
359
+
- This method transmits the message over the client's WebSocket and may perform serialization, optional compression, and optional encryption depending on client configuration.
360
+
359
361
Raises:
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.
362
+
ValueError: If the client has not been started with run_forever() and the connection is not ready.
0 commit comments