-
Notifications
You must be signed in to change notification settings - Fork 13
multipart messages
Fanda Vacek edited this page Oct 8, 2024
·
23 revisions
First of all, the rcid
idea is wrong. Caller cannot distinguish responses to own calls from tunnel/multipart messages responses. There is
request ID clash possibility.
- Client calls method foo/bar:baz with some request ID, let say
123
- Device can answer more responses with increasing
SeqNo
attribute starting at0
andPart
attribute set totrue
. - Last part has
Part
attribute set to 0, note that single part message can havePart
attribute omitted because default value is false.
Result concatenation:
-
List
,String
,Blob
types are appended are appended to previous -
Map
,IMap
types are merged, more recent keys override the old ones.
- There is
**/tunnel:create
method returningtunid
asString
- Upon successful tunnel creation, the
**/tunnel/tunid
node exists - client can sen data to the tunnel calling
**/tunnel/tunid:write
- The tunnel data exchange is started by first
**/tunnel/tunid:write
call. - All responses to
**/tunnel/tunid:write
are send with request-id of first call, but with increasingSeqNo
attribute value - Tunnel is closed when:
-
**/tunnel/tunid:close
is called - RpcError message is sent by one of side
- There is no traffic for 1 minute
-
- Tunnel creation and destruction is signalized by
**/tunnel/tunid:ls:lsmod
signal