45 lines
608 B
Plaintext
45 lines
608 B
Plaintext
// file: message.fbs
|
|
namespace proto;
|
|
|
|
enum MessageType : byte {
|
|
NONE = 0,
|
|
DATA = 1,
|
|
ACK = 2,
|
|
HEARTBEAT = 3
|
|
}
|
|
|
|
table DataMessage {
|
|
id: string;
|
|
topic: string;
|
|
timestamp: ulong;
|
|
payload: [ubyte];
|
|
metadata: [KeyValue];
|
|
}
|
|
|
|
table AckMessage {
|
|
acked_id: string;
|
|
timestamp: ulong;
|
|
}
|
|
|
|
table HeartBeatMessage {
|
|
client_id: string;
|
|
timestamp: ulong;
|
|
}
|
|
|
|
table KeyValue {
|
|
key: string;
|
|
value: string;
|
|
}
|
|
|
|
union Message {
|
|
DataMessage,
|
|
AckMessage,
|
|
HeartBeatMessage,
|
|
}
|
|
|
|
table Envelope {
|
|
type: MessageType;
|
|
message: Message;
|
|
}
|
|
|
|
root_type Envelope; |