ThingSet via WebSockets

WARNING

The WebSocket transport is still work-in-progress and may change in the future.

The WebSocket transport uses normal ThingSet messages as the payload for bi-directional communication.

Application to cloud connection (client)

Used by web front-ends to get information about multiple nodes.

ws(s)://{cloud-host}/app/

Authentication can be achieved with HTTP basic auth.

Live connection via cloud (client)

Used by an application to establish a direct 1:1 connection to a node.

ws(s)://{cloud-host}/app/{node-id}

Authentication can be achieved with HTTP basic auth.

Multiple clients should be able to connect to the same node. They will all receive statements. In addition to that, statements are stored in the state DB.

Requests and responses have to be multiplexed. After a request the node is locked by a mutex which is only released after the response has been received (or after a timeout).

Node to cloud connection

Single node

ws(s)://{cloud-host}/node/{node-id}

Gateway

ws(s)://{cloud-host}/gw/{gateway-id}