Creates a new BridgeClient.
Does not open the WebSocket — call connect.
Endpoint URL, auth token, and retry settings.
The active session ID embedded in every outgoing message.
Opens the WebSocket connection and starts the heartbeat timer.
Resolves once the connection is established and the capability report has been received from the edge device.
Gracefully closes the WebSocket and stops the heartbeat timer.
Resolves when the connection is fully closed.
Registers a callback for the capability report sent by the device on connect.
Called once with the device's BridgeCapabilities.
Registers a callback that fires on every connection status change.
Called with the new BridgeConnectionStatus.
Registers a callback for incoming stroke events from the edge device.
Called with each Stroke as it arrives.
Sends an arbitrary typed message and optionally awaits acknowledgement. Prefer sendRenderCommand for the common render case.
Any BridgeMessage to send.
OptionalawaitAck: booleanWhether to wait for an ACK before resolving.
Resolves when the message is sent (and ACK'd if awaitAck is true).
Sends a render command to the edge device. Waits for an ACK before resolving.
The PrimitiveRenderCommand to dispatch.
Resolves when the edge device acknowledges receipt.
Manages the real-time WebSocket connection from the tutor to the edge device.