-
Notifications
You must be signed in to change notification settings - Fork 22
SessionMessage Serialization
David Brodsky edited this page Mar 3, 2015
·
6 revisions
Every SessionMessage, regardless of type, has a basic byte format and JSON header:
Byte index | Description | Notes |
---|---|---|
0 | Version | |
1-2 | JSON Header Length | Max size 65kB |
2-X | JSON Header | X is value specified by JSON Header Length |
X-Y | Body | Y is specified in JSON Header as 'body-length' |
All integer values are little endian.
Key | Example Value | Notes |
---|---|---|
id | '35a8aa74' | Used for acknowledgement |
type | 'identity' | Specifies message type |
body-length | '1024' | '0' if no body |
In addition to the SessionMessage JSON entries:
Key | Example Value | Notes |
---|---|---|
type | 'identity' | |
alias | 'octavio' | |
pubkey | '7E9FD5E...' | Hex string |
IdentityMessages have no body.
In addition to the SessionMessage JSON entries:
Key | Example Value | Notes |
---|---|---|
type | 'filetransfer-offer', 'filetransfer-accept', or 'filetransfer' | |
filename | 'cats.jpg' | |
filetransfer-offer-length | '2863402' | Used by offer and accept messages to indicate the file length to expect without including the actual contents in the message body |
'filetransfer-offer' and 'filetransfer-accept' messages have no body. The 'filetransfer' message includes the file contents in its body and forgoes the then-redundant 'filetransfer-offer-length' header.