Skip to content

multipart messages

Fanda Vacek edited this page Mar 23, 2023 · 23 revisions

Multipart messages

New meta key part will be introduced in RpcResponse. RpcResponse without part key is considered to be the final one. This is aligned with single-part messages, which currently have not a part key.

RpcResult keys enum will be extended by next keys:

  • chunk - if chunk key is received, then result should be appended to result of previous chunks
    • String, Blob will be concatenated
    • List will be appended
    • Map will be merged
  • progress - IMap with following keys:
    • index - index of current part <0, count)
    • count - part count
    • message

Receiver of multipart message can cancel whole transfer, if it sent back Error RpcResponse, rcid must be part of RpcRequest to enable this.

Also sender can cancel whole transfer, if it will send RpcResponse with error set

What multipart messages can be good for:

  • transfer big file in N chunks with progress
  • keep client informed about progress of very long time lasting Rpc Call
  • tunneling
Clone this wiki locally