lichao
2021-04-20 64bff0caaf665c65125cdab2b144f3594d520002
proto/source/bhome_msg.proto
@@ -1,92 +1,84 @@
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
option go_package="./bhome_msg";
package bhome.msg;
// import "google/protobuf/descriptor.proto";
import "bhome_msg_api.proto";
import "error_msg.proto";
// message format : header(BHMsgHead) + body(variable types)
message BHAddress {
   bytes mq_id = 1; // mqid, uuid
   bytes ip = 2;   //
   int32 port = 3;
}
package bhome_msg;
message ProcInfo
{
   bytes id = 1;
   bytes name = 2;
   bytes public_info = 3;
   bytes private_info = 4;
}
// message format : head_len(4) + head(BHMsgHead) + body_len(4) + body(variable types)
message BHMsgHead {
   bytes msg_id = 1;
   repeated BHAddress route = 2; // for reply and proxy.
   int64 timestamp = 3;
   int32 type = 4;
   ProcInfo proc = 5;
   bytes proc_id = 5;
   bytes topic = 6; // for request route
}
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;
   kMsgTypeRequest = 1;
   kMsgTypeReply = 2;
   kMsgTypePublish = 3;
   kMsgTypeSubscribe = 4;
   kMsgTypeUnsubscribe = 5;
   kMsgTypeRawData = 1;
   kMsgTypeProcQueryTopic = 6;
   kMsgTypeProcQueryTopicReply = 7;
   kMsgTypeProcRegisterTopics = 8;
   kMsgTypeProcHeartbeat = 9;
   kMsgTypeCommonReply = 2;
   kMsgTypeRegister= 10;
   // kMsgTypeRegisterReply= 11;
   kMsgTypeHeartbeat = 12;
   // kMsgTypeHeartbeatReply = 13;
   kMsgTypeQueryTopic = 14;
   kMsgTypeQueryTopicReply = 15;
   kMsgTypeRequestTopic = 16;
   kMsgTypeRequestTopicReply = 17;
   kMsgTypeRegisterRPC = 18;
   // reply
   kMsgTypePublish = 20;
   // kMsgTypePublishReply = 21;
   kMsgTypeSubscribe = 22;
   // kMsgTypeSubscribeReply = 23;
   kMsgTypeUnsubscribe = 24;
   // kMsgTypeUnsubscribeReply = 25;
}
message DataPub {
   bytes topic = 1;
   bytes data = 2;
message MsgSubscribe {
   MsgTopicList topics = 1;
}
message MsgUnsubscribe {
   MsgTopicList topics = 1;
}
message MsgRegisterRPC {
   MsgTopicList topics = 1;
}
message DataSub {
   repeated bytes topics = 1;
service TopicRPC {
   rpc Query (MsgQueryTopic) returns (MsgQueryTopicReply);
   rpc Request (MsgRequestTopic) returns (MsgQueryTopicReply);
}
message DataRequest {
   bytes topic = 1;
   bytes data = 2;
message MsgRequest {
   // oneof body;
   oneof request {
      MsgRegister register = 1;
      MsgRequestTopic topic_request = 2;
      MsgQueryTopic topic_query = 3;
   }
}
message DataReply {
   bytes data = 1;
message MsgReply {
   ErrorMsg err_msg = 1;
   // oneof reply
}
message DataProcRegister
{
   ProcInfo proc = 1;
   repeated bytes topics = 2;
message BHMsgBody {
   oneof reqrep {
      MsgRequest request = 1;
      MsgReply reply = 2;
   }
}
message DataProcHeartbeat
{
   ProcInfo proc = 1;
}
message DataProcQueryTopic {
   bytes topic = 1;
}
message DataProcQueryTopicReply {
   BHAddress address = 1;
}
service TopicRequestReplyService {
   rpc Request (DataRequest) returns (DataReply);
}