syntax = "proto3";
|
|
option optimize_for = LITE_RUNTIME;
|
|
import "google/protobuf/descriptor.proto";
|
import "error_msg.proto";
|
|
package bhome.msg;
|
|
|
// message format : header(BHMsgHead) + body(variable types)
|
message BHAddress {
|
bytes mq_id = 1; // mqid, uuid
|
bytes ip = 2; //
|
int32 port = 3;
|
}
|
|
message ProcInfo
|
{
|
bytes id = 1; // serial number, maybe managed
|
bytes name = 2;
|
bytes public_info = 3;
|
bytes private_info = 4;
|
}
|
|
message BHMsgHead {
|
bytes msg_id = 1;
|
repeated BHAddress route = 2; // for reply and proxy.
|
int64 timestamp = 3;
|
int32 type = 4;
|
ProcInfo proc = 5;
|
bytes topic = 6; // for request route
|
}
|
|
message BHMsgBody {
|
bytes data = 1;
|
}
|
|
message BHMsg { // deprecated
|
bytes msg_id = 1;
|
int64 timestamp = 2;
|
int32 type = 3;
|
repeated BHAddress route = 4; // for reply and proxy.
|
bytes body = 5;
|
}
|
|
enum MsgType {
|
kMsgTypeInvalid = 0;
|
|
kMsgTypeCommonReply = 2;
|
|
kMsgTypeRegister= 10;
|
// kMsgTypeRegisterReply= 11;
|
kMsgTypeHeartbeat = 12;
|
// kMsgTypeHeartbeatReply = 13;
|
kMsgTypeQueryTopic = 14;
|
kMsgTypeQueryTopicReply = 15;
|
kMsgTypeRequestTopic = 16;
|
kMsgTypeRequestTopicReply = 17;
|
|
kMsgTypePublish = 100;
|
// kMsgTypePublishReply = 101;
|
kMsgTypeSubscribe = 102;
|
// kMsgTypeSubscribeReply = 103;
|
kMsgTypeUnsubscribe = 104;
|
// kMsgTypeUnsubscribeReply = 105;
|
|
}
|
|
message MsgPub {
|
bytes topic = 1;
|
bytes data = 2;
|
}
|
|
message MsgSub {
|
repeated bytes topics = 1;
|
}
|
|
message MsgCommonReply {
|
ErrorMsg errmsg = 1;
|
}
|
|
message MsgRequestTopic {
|
bytes topic = 1;
|
bytes data = 2;
|
}
|
|
message MsgRequestTopicReply {
|
ErrorMsg errmsg = 1;
|
bytes data = 2;
|
}
|
|
message MsgRegister
|
{
|
ProcInfo proc = 1;
|
repeated bytes topics = 2;
|
}
|
|
message MsgHeartbeat
|
{
|
ProcInfo proc = 1;
|
}
|
|
message MsgQueryTopic {
|
bytes topic = 1;
|
}
|
|
message MsgQueryTopicReply {
|
ErrorMsg errmsg = 1;
|
BHAddress address = 2;
|
}
|
|
service TopicRPC {
|
rpc Query (MsgQueryTopic) returns (MsgQueryTopicReply);
|
rpc Request (MsgRequestTopic) returns (MsgQueryTopicReply);
|
}
|