title Remote tunnel proxy

nymea->proxy: TunnelProxy.RegisterServer(serverUuid, serverName)

note over proxy: Register the server using the uuid

nymea<-proxy: TunnelProxyErrorNoError

note over nymea, proxy: Protocol from now on SLIP\nThe proxy is client 0x0000

note over nymea, proxy: SLIP encoded data: 2 Bytes address + data

proxy<-client: TunnelProxy.RegisterClient(clientUuid, clientName, serverUuid)

note over proxy: Search server with given uuid

note over proxy: Server: Assign address for this client socket (0x0001)

proxy->nymea: SLIP:0x0000: ProxyTunnel.ClientConnected (address: 0x0001)


proxy->client: TunnelProxyErrorNoError

note over client: Connected\nAny incomming and outgoing data will\nbe from the connected nymea instance\nuntil disconnected.

note over nymea, client: Connected: The client can now communicate with nymea directly.\nThe proxy will not interpret any data from the client, and from the server only\nthe transmission frame (SLIP + 2 bytes of address)



proxy<-client: "request data"

nymea<-proxy: SLIP:0x0001 "request data"

nymea->proxy: SLIP:0x0001 "response data"

proxy->client: "response data"

nymea->proxy: SLIP:0x0001 "notification data"

proxy->client: "notification data"
