// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.20.0--rc1 // source: connect.ext.proto package pb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type PackageType int32 const ( PackageType_PT_UNKNOWN PackageType = 0 // 未知 PackageType_PT_SIGN_IN PackageType = 1 // 设备登录请求 PackageType_PT_SYNC PackageType = 2 // 消息同步触发 PackageType_PT_HEARTBEAT PackageType = 3 // 心跳 PackageType_PT_MESSAGE PackageType = 4 // 消息投递 PackageType_PT_SUBSCRIBE_ROOM PackageType = 5 // 订阅房间 ) // Enum value maps for PackageType. var ( PackageType_name = map[int32]string{ 0: "PT_UNKNOWN", 1: "PT_SIGN_IN", 2: "PT_SYNC", 3: "PT_HEARTBEAT", 4: "PT_MESSAGE", 5: "PT_SUBSCRIBE_ROOM", } PackageType_value = map[string]int32{ "PT_UNKNOWN": 0, "PT_SIGN_IN": 1, "PT_SYNC": 2, "PT_HEARTBEAT": 3, "PT_MESSAGE": 4, "PT_SUBSCRIBE_ROOM": 5, } ) func (x PackageType) Enum() *PackageType { p := new(PackageType) *p = x return p } func (x PackageType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PackageType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[0].Descriptor() } func (PackageType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[0] } func (x PackageType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PackageType.Descriptor instead. func (PackageType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{0} } // 消息类型 type MessageType int32 const ( MessageType_MT_UNKNOWN MessageType = 0 // 未知 MessageType_MT_TEXT MessageType = 1 // 文本 MessageType_MT_FACE MessageType = 2 // 表情 MessageType_MT_VOICE MessageType = 3 // 语音消息 MessageType_MT_IMAGE MessageType = 4 // 图片 MessageType_MT_FILE MessageType = 5 // 文件 MessageType_MT_LOCATION MessageType = 6 // 地理位置 MessageType_MT_COMMAND MessageType = 7 // 指令推送 MessageType_MT_CUSTOM MessageType = 8 // 自定义 MessageType_MT_RECALL MessageType = 9 // 撤回消息 MessageType_MT_RED_PACKAGE MessageType = 10 // 红包消息 ) // Enum value maps for MessageType. var ( MessageType_name = map[int32]string{ 0: "MT_UNKNOWN", 1: "MT_TEXT", 2: "MT_FACE", 3: "MT_VOICE", 4: "MT_IMAGE", 5: "MT_FILE", 6: "MT_LOCATION", 7: "MT_COMMAND", 8: "MT_CUSTOM", 9: "MT_RECALL", 10: "MT_RED_PACKAGE", } MessageType_value = map[string]int32{ "MT_UNKNOWN": 0, "MT_TEXT": 1, "MT_FACE": 2, "MT_VOICE": 3, "MT_IMAGE": 4, "MT_FILE": 5, "MT_LOCATION": 6, "MT_COMMAND": 7, "MT_CUSTOM": 8, "MT_RECALL": 9, "MT_RED_PACKAGE": 10, } ) func (x MessageType) Enum() *MessageType { p := new(MessageType) *p = x return p } func (x MessageType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MessageType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[1].Descriptor() } func (MessageType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[1] } func (x MessageType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MessageType.Descriptor instead. func (MessageType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{1} } // 红包类型 type RedPacketType int32 const ( RedPacketType_RPT_UNKNOWN RedPacketType = 0 // 未知 RedPacketType_RPT_FRIEND RedPacketType = 1 // 好友红包 RedPacketType_RPT_GROUP_NORMAL RedPacketType = 2 // 群组普通红包 RedPacketType_RPT_GROUP_LUCK RedPacketType = 3 // 群组手气红包 RedPacketType_RPT_GROUP_SPECIALLY RedPacketType = 4 // 群组专属红包 RedPacketType_RPT_SYSTEM_FOR RedPacketType = 5 // 系统红包 ) // Enum value maps for RedPacketType. var ( RedPacketType_name = map[int32]string{ 0: "RPT_UNKNOWN", 1: "RPT_FRIEND", 2: "RPT_GROUP_NORMAL", 3: "RPT_GROUP_LUCK", 4: "RPT_GROUP_SPECIALLY", 5: "RPT_SYSTEM_FOR", } RedPacketType_value = map[string]int32{ "RPT_UNKNOWN": 0, "RPT_FRIEND": 1, "RPT_GROUP_NORMAL": 2, "RPT_GROUP_LUCK": 3, "RPT_GROUP_SPECIALLY": 4, "RPT_SYSTEM_FOR": 5, } ) func (x RedPacketType) Enum() *RedPacketType { p := new(RedPacketType) *p = x return p } func (x RedPacketType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RedPacketType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[2].Descriptor() } func (RedPacketType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[2] } func (x RedPacketType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RedPacketType.Descriptor instead. func (RedPacketType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{2} } // 红包消息类型 type RedPacketMessageType int32 const ( RedPacketMessageType_RMT_UNKNOWN RedPacketMessageType = 0 // 未知 RedPacketMessageType_RMT_SEND RedPacketMessageType = 1 // 发红包 RedPacketMessageType_RMT_GRAB RedPacketMessageType = 2 // 抢红包 ) // Enum value maps for RedPacketMessageType. var ( RedPacketMessageType_name = map[int32]string{ 0: "RMT_UNKNOWN", 1: "RMT_SEND", 2: "RMT_GRAB", } RedPacketMessageType_value = map[string]int32{ "RMT_UNKNOWN": 0, "RMT_SEND": 1, "RMT_GRAB": 2, } ) func (x RedPacketMessageType) Enum() *RedPacketMessageType { p := new(RedPacketMessageType) *p = x return p } func (x RedPacketMessageType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RedPacketMessageType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[3].Descriptor() } func (RedPacketMessageType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[3] } func (x RedPacketMessageType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RedPacketMessageType.Descriptor instead. func (RedPacketMessageType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{3} } // 红包状态类型 type RedPacketStatusType int32 const ( RedPacketStatusType_RPS_NOT_DRAW RedPacketStatusType = 0 // 未领取 RedPacketStatusType_RPS_DRAWING RedPacketStatusType = 1 // 领取中 RedPacketStatusType_RPS_DRAW_OVER RedPacketStatusType = 2 // 领取完 RedPacketStatusType_RPS_EXPIRE RedPacketStatusType = 3 //已过期 ) // Enum value maps for RedPacketStatusType. var ( RedPacketStatusType_name = map[int32]string{ 0: "RPS_NOT_DRAW", 1: "RPS_DRAWING", 2: "RPS_DRAW_OVER", 3: "RPS_EXPIRE", } RedPacketStatusType_value = map[string]int32{ "RPS_NOT_DRAW": 0, "RPS_DRAWING": 1, "RPS_DRAW_OVER": 2, "RPS_EXPIRE": 3, } ) func (x RedPacketStatusType) Enum() *RedPacketStatusType { p := new(RedPacketStatusType) *p = x return p } func (x RedPacketStatusType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RedPacketStatusType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[4].Descriptor() } func (RedPacketStatusType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[4] } func (x RedPacketStatusType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RedPacketStatusType.Descriptor instead. func (RedPacketStatusType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{4} } type ReceiverType int32 const ( ReceiverType_RT_UNKNOWN ReceiverType = 0 // 未知 ReceiverType_RT_USER ReceiverType = 1 // 用户 ReceiverType_RT_GROUP ReceiverType = 2 // 群组 ReceiverType_RT_ROOM ReceiverType = 3 // 房间 ) // Enum value maps for ReceiverType. var ( ReceiverType_name = map[int32]string{ 0: "RT_UNKNOWN", 1: "RT_USER", 2: "RT_GROUP", 3: "RT_ROOM", } ReceiverType_value = map[string]int32{ "RT_UNKNOWN": 0, "RT_USER": 1, "RT_GROUP": 2, "RT_ROOM": 3, } ) func (x ReceiverType) Enum() *ReceiverType { p := new(ReceiverType) *p = x return p } func (x ReceiverType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ReceiverType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[5].Descriptor() } func (ReceiverType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[5] } func (x ReceiverType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ReceiverType.Descriptor instead. func (ReceiverType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{5} } type SenderType int32 const ( SenderType_ST_UNKNOWN SenderType = 0 // 未知的 SenderType_ST_SYSTEM SenderType = 1 // IM系统 SenderType_ST_USER SenderType = 2 // 用户 SenderType_ST_BUSINESS SenderType = 3 // 业务方 ) // Enum value maps for SenderType. var ( SenderType_name = map[int32]string{ 0: "ST_UNKNOWN", 1: "ST_SYSTEM", 2: "ST_USER", 3: "ST_BUSINESS", } SenderType_value = map[string]int32{ "ST_UNKNOWN": 0, "ST_SYSTEM": 1, "ST_USER": 2, "ST_BUSINESS": 3, } ) func (x SenderType) Enum() *SenderType { p := new(SenderType) *p = x return p } func (x SenderType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SenderType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[6].Descriptor() } func (SenderType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[6] } func (x SenderType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SenderType.Descriptor instead. func (SenderType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{6} } type MessageStatus int32 const ( MessageStatus_MS_UNKNOWN MessageStatus = 0 // 未知的 MessageStatus_MS_NORMAL MessageStatus = 1 // 正常的 MessageStatus_MS_RECALL MessageStatus = 2 // 撤回 ) // Enum value maps for MessageStatus. var ( MessageStatus_name = map[int32]string{ 0: "MS_UNKNOWN", 1: "MS_NORMAL", 2: "MS_RECALL", } MessageStatus_value = map[string]int32{ "MS_UNKNOWN": 0, "MS_NORMAL": 1, "MS_RECALL": 2, } ) func (x MessageStatus) Enum() *MessageStatus { p := new(MessageStatus) *p = x return p } func (x MessageStatus) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MessageStatus) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[7].Descriptor() } func (MessageStatus) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[7] } func (x MessageStatus) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MessageStatus.Descriptor instead. func (MessageStatus) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{7} } // 群组用户状态 type GroupUserStatusType int32 const ( GroupUserStatusType_GROUP_USER_STATUS_NORMAL GroupUserStatusType = 0 // 正常 GroupUserStatusType_GROUP_USER_STATUS_Banned GroupUserStatusType = 1 // 禁言 ) // Enum value maps for GroupUserStatusType. var ( GroupUserStatusType_name = map[int32]string{ 0: "GROUP_USER_STATUS_NORMAL", 1: "GROUP_USER_STATUS_Banned", } GroupUserStatusType_value = map[string]int32{ "GROUP_USER_STATUS_NORMAL": 0, "GROUP_USER_STATUS_Banned": 1, } ) func (x GroupUserStatusType) Enum() *GroupUserStatusType { p := new(GroupUserStatusType) *p = x return p } func (x GroupUserStatusType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GroupUserStatusType) Descriptor() protoreflect.EnumDescriptor { return file_connect_ext_proto_enumTypes[8].Descriptor() } func (GroupUserStatusType) Type() protoreflect.EnumType { return &file_connect_ext_proto_enumTypes[8] } func (x GroupUserStatusType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GroupUserStatusType.Descriptor instead. func (GroupUserStatusType) EnumDescriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{8} } // 单条消息投递内容(估算大约100个字节),todo 通知栏提醒 type Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sender *Sender `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` // 发送者 ReceiverType ReceiverType `protobuf:"varint,2,opt,name=receiver_type,json=receiverType,proto3,enum=pb.ReceiverType" json:"receiver_type,omitempty"` // 接收者类型,1:user;2:group ReceiverId int64 `protobuf:"varint,3,opt,name=receiver_id,json=receiverId,proto3" json:"receiver_id,omitempty"` // 用户id或者群组id ToUserIds []int64 `protobuf:"varint,4,rep,packed,name=to_user_ids,json=toUserIds,proto3" json:"to_user_ids,omitempty"` // 需要@的用户id列表 MessageType MessageType `protobuf:"varint,5,opt,name=message_type,json=messageType,proto3,enum=pb.MessageType" json:"message_type,omitempty"` // 消息类型 MessageContent []byte `protobuf:"bytes,6,opt,name=message_content,json=messageContent,proto3" json:"message_content,omitempty"` // 消息内容 Seq int64 `protobuf:"varint,7,opt,name=seq,proto3" json:"seq,omitempty"` // 用户消息发送序列号 SendTime int64 `protobuf:"varint,8,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"` // 消息发送时间戳,精确到毫秒 Status MessageStatus `protobuf:"varint,9,opt,name=status,proto3,enum=pb.MessageStatus" json:"status,omitempty"` // 消息状态 } func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{0} } func (x *Message) GetSender() *Sender { if x != nil { return x.Sender } return nil } func (x *Message) GetReceiverType() ReceiverType { if x != nil { return x.ReceiverType } return ReceiverType_RT_UNKNOWN } func (x *Message) GetReceiverId() int64 { if x != nil { return x.ReceiverId } return 0 } func (x *Message) GetToUserIds() []int64 { if x != nil { return x.ToUserIds } return nil } func (x *Message) GetMessageType() MessageType { if x != nil { return x.MessageType } return MessageType_MT_UNKNOWN } func (x *Message) GetMessageContent() []byte { if x != nil { return x.MessageContent } return nil } func (x *Message) GetSeq() int64 { if x != nil { return x.Seq } return 0 } func (x *Message) GetSendTime() int64 { if x != nil { return x.SendTime } return 0 } func (x *Message) GetStatus() MessageStatus { if x != nil { return x.Status } return MessageStatus_MS_UNKNOWN } type Sender struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SenderType SenderType `protobuf:"varint,1,opt,name=sender_type,json=senderType,proto3,enum=pb.SenderType" json:"sender_type,omitempty"` // 发送者类型,1:系统,2:用户,3:第三方业务系统 SenderId int64 `protobuf:"varint,2,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"` // 发送者id DeviceId int64 `protobuf:"varint,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 发送者设备id AvatarUrl string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"` // 头像 Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` // 昵称 Extra string `protobuf:"bytes,6,opt,name=extra,proto3" json:"extra,omitempty"` // 扩展字段 } func (x *Sender) Reset() { *x = Sender{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Sender) String() string { return protoimpl.X.MessageStringOf(x) } func (*Sender) ProtoMessage() {} func (x *Sender) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Sender.ProtoReflect.Descriptor instead. func (*Sender) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{1} } func (x *Sender) GetSenderType() SenderType { if x != nil { return x.SenderType } return SenderType_ST_UNKNOWN } func (x *Sender) GetSenderId() int64 { if x != nil { return x.SenderId } return 0 } func (x *Sender) GetDeviceId() int64 { if x != nil { return x.DeviceId } return 0 } func (x *Sender) GetAvatarUrl() string { if x != nil { return x.AvatarUrl } return "" } func (x *Sender) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *Sender) GetExtra() string { if x != nil { return x.Extra } return "" } // 文本消息 type Text struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` // 文本消息内容 } func (x *Text) Reset() { *x = Text{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Text) String() string { return protoimpl.X.MessageStringOf(x) } func (*Text) ProtoMessage() {} func (x *Text) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Text.ProtoReflect.Descriptor instead. func (*Text) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{2} } func (x *Text) GetText() string { if x != nil { return x.Text } return "" } // 表情消息 type Face struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FaceId int64 `protobuf:"varint,1,opt,name=face_id,json=faceId,proto3" json:"face_id,omitempty"` FaceUrl string `protobuf:"bytes,2,opt,name=face_url,json=faceUrl,proto3" json:"face_url,omitempty"` } func (x *Face) Reset() { *x = Face{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Face) String() string { return protoimpl.X.MessageStringOf(x) } func (*Face) ProtoMessage() {} func (x *Face) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Face.ProtoReflect.Descriptor instead. func (*Face) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{3} } func (x *Face) GetFaceId() int64 { if x != nil { return x.FaceId } return 0 } func (x *Face) GetFaceUrl() string { if x != nil { return x.FaceUrl } return "" } // 语音消息 type Voice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 语音包id Size int32 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` // 语音包大小 Duration int32 `protobuf:"varint,3,opt,name=duration,proto3" json:"duration,omitempty"` // 语音时长 Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` // 语音文件URL } func (x *Voice) Reset() { *x = Voice{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Voice) String() string { return protoimpl.X.MessageStringOf(x) } func (*Voice) ProtoMessage() {} func (x *Voice) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Voice.ProtoReflect.Descriptor instead. func (*Voice) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{4} } func (x *Voice) GetId() string { if x != nil { return x.Id } return "" } func (x *Voice) GetSize() int32 { if x != nil { return x.Size } return 0 } func (x *Voice) GetDuration() int32 { if x != nil { return x.Duration } return 0 } func (x *Voice) GetUrl() string { if x != nil { return x.Url } return "" } // 图片消息 type Image struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 图片id Width int32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"` // 图片宽度 Height int32 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` // 图片长度 Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` // 图片URL ThumbnailUrl string `protobuf:"bytes,5,opt,name=thumbnail_url,json=thumbnailUrl,proto3" json:"thumbnail_url,omitempty"` // 图片缩略图url } func (x *Image) Reset() { *x = Image{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Image) String() string { return protoimpl.X.MessageStringOf(x) } func (*Image) ProtoMessage() {} func (x *Image) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Image.ProtoReflect.Descriptor instead. func (*Image) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{5} } func (x *Image) GetId() string { if x != nil { return x.Id } return "" } func (x *Image) GetWidth() int32 { if x != nil { return x.Width } return 0 } func (x *Image) GetHeight() int32 { if x != nil { return x.Height } return 0 } func (x *Image) GetUrl() string { if x != nil { return x.Url } return "" } func (x *Image) GetThumbnailUrl() string { if x != nil { return x.ThumbnailUrl } return "" } // 文件消息 type File struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,12,opt,name=id,proto3" json:"id,omitempty"` // 文件id Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` // 文件名 Size int64 `protobuf:"varint,14,opt,name=size,proto3" json:"size,omitempty"` // 文件大小 Url string `protobuf:"bytes,15,opt,name=url,proto3" json:"url,omitempty"` // 文件url } func (x *File) Reset() { *x = File{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *File) String() string { return protoimpl.X.MessageStringOf(x) } func (*File) ProtoMessage() {} func (x *File) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use File.ProtoReflect.Descriptor instead. func (*File) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{6} } func (x *File) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *File) GetName() string { if x != nil { return x.Name } return "" } func (x *File) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *File) GetUrl() string { if x != nil { return x.Url } return "" } // 地理位置消息 type Location struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Desc string `protobuf:"bytes,1,opt,name=desc,proto3" json:"desc,omitempty"` // 描述 Latitude float64 `protobuf:"fixed64,2,opt,name=latitude,proto3" json:"latitude,omitempty"` // 经度 Longitude float64 `protobuf:"fixed64,3,opt,name=longitude,proto3" json:"longitude,omitempty"` // 纬度 } func (x *Location) Reset() { *x = Location{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Location) String() string { return protoimpl.X.MessageStringOf(x) } func (*Location) ProtoMessage() {} func (x *Location) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Location.ProtoReflect.Descriptor instead. func (*Location) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{7} } func (x *Location) GetDesc() string { if x != nil { return x.Desc } return "" } func (x *Location) GetLatitude() float64 { if x != nil { return x.Latitude } return 0 } func (x *Location) GetLongitude() float64 { if x != nil { return x.Longitude } return 0 } // Command 指令推送,1000以下,IM内部用,1000以上,留给业务用 type Command struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // 指令码 Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` // 数据内容 } func (x *Command) Reset() { *x = Command{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Command) String() string { return protoimpl.X.MessageStringOf(x) } func (*Command) ProtoMessage() {} func (x *Command) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Command.ProtoReflect.Descriptor instead. func (*Command) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{8} } func (x *Command) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *Command) GetData() []byte { if x != nil { return x.Data } return nil } // 自定义消息 type Custom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // 自定义数据 } func (x *Custom) Reset() { *x = Custom{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Custom) String() string { return protoimpl.X.MessageStringOf(x) } func (*Custom) ProtoMessage() {} func (x *Custom) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Custom.ProtoReflect.Descriptor instead. func (*Custom) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{9} } func (x *Custom) GetData() string { if x != nil { return x.Data } return "" } // 撤回消息 type RECALL struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RecallSeq int64 `protobuf:"varint,1,opt,name=recall_seq,json=recallSeq,proto3" json:"recall_seq,omitempty"` // 撤回消息seq } func (x *RECALL) Reset() { *x = RECALL{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RECALL) String() string { return protoimpl.X.MessageStringOf(x) } func (*RECALL) ProtoMessage() {} func (x *RECALL) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RECALL.ProtoReflect.Descriptor instead. func (*RECALL) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{10} } func (x *RECALL) GetRecallSeq() int64 { if x != nil { return x.RecallSeq } return 0 } // 红包消息 type RED_PACKAGE struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RedMessageType RedPacketMessageType `protobuf:"varint,1,opt,name=red_message_type,json=redMessageType,proto3,enum=pb.RedPacketMessageType" json:"red_message_type,omitempty"` // 红包消息类型 RedPacketType RedPacketType `protobuf:"varint,2,opt,name=red_packet_type,json=redPacketType,proto3,enum=pb.RedPacketType" json:"red_packet_type,omitempty"` // 红包类型 RedPacketContent string `protobuf:"bytes,3,opt,name=red_packet_content,json=redPacketContent,proto3" json:"red_packet_content,omitempty"` // 红包文字内容 RedPacketAmount float32 `protobuf:"fixed32,6,opt,name=red_packet_amount,json=redPacketAmount,proto3" json:"red_packet_amount,omitempty"` // 红包金额 RedPacketNums int32 `protobuf:"varint,5,opt,name=red_packet_nums,json=redPacketNums,proto3" json:"red_packet_nums,omitempty"` // 红包数量 RedPacketBalanceAmount float32 `protobuf:"fixed32,7,opt,name=red_packet_balance_amount,json=redPacketBalanceAmount,proto3" json:"red_packet_balance_amount,omitempty"` // 红包余额 ReceivedUserId int64 `protobuf:"varint,8,opt,name=received_user_id,json=receivedUserId,proto3" json:"received_user_id,omitempty"` // 领取用户id ReceivedUserAmount float32 `protobuf:"fixed32,9,opt,name=received_user_amount,json=receivedUserAmount,proto3" json:"received_user_amount,omitempty"` // 领取用户金额 ReceivedUserNickname string `protobuf:"bytes,10,opt,name=received_user_nickname,json=receivedUserNickname,proto3" json:"received_user_nickname,omitempty"` // 领取用户昵称 RedPacketStatusType RedPacketStatusType `protobuf:"varint,11,opt,name=red_packet_status_type,json=redPacketStatusType,proto3,enum=pb.RedPacketStatusType" json:"red_packet_status_type,omitempty"` // 领取状态 RedPacketId int64 `protobuf:"varint,12,opt,name=red_packet_id,json=redPacketId,proto3" json:"red_packet_id,omitempty"` // 红包id SendRedPacketUid int64 `protobuf:"varint,13,opt,name=send_red_packet_uid,json=sendRedPacketUid,proto3" json:"send_red_packet_uid,omitempty"` // 红包发送者uid SendRedPacketNickname string `protobuf:"bytes,14,opt,name=send_red_packet_nickname,json=sendRedPacketNickname,proto3" json:"send_red_packet_nickname,omitempty"` // 红包发送者昵称 SendRedPacketAvatarUrl string `protobuf:"bytes,15,opt,name=send_red_packet_avatar_url,json=sendRedPacketAvatarUrl,proto3" json:"send_red_packet_avatar_url,omitempty"` // 红包发送者头像 RedPacketSmallContent string `protobuf:"bytes,16,opt,name=red_packet_small_content,json=redPacketSmallContent,proto3" json:"red_packet_small_content,omitempty"` // 红包小文字内容 } func (x *RED_PACKAGE) Reset() { *x = RED_PACKAGE{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RED_PACKAGE) String() string { return protoimpl.X.MessageStringOf(x) } func (*RED_PACKAGE) ProtoMessage() {} func (x *RED_PACKAGE) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RED_PACKAGE.ProtoReflect.Descriptor instead. func (*RED_PACKAGE) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{11} } func (x *RED_PACKAGE) GetRedMessageType() RedPacketMessageType { if x != nil { return x.RedMessageType } return RedPacketMessageType_RMT_UNKNOWN } func (x *RED_PACKAGE) GetRedPacketType() RedPacketType { if x != nil { return x.RedPacketType } return RedPacketType_RPT_UNKNOWN } func (x *RED_PACKAGE) GetRedPacketContent() string { if x != nil { return x.RedPacketContent } return "" } func (x *RED_PACKAGE) GetRedPacketAmount() float32 { if x != nil { return x.RedPacketAmount } return 0 } func (x *RED_PACKAGE) GetRedPacketNums() int32 { if x != nil { return x.RedPacketNums } return 0 } func (x *RED_PACKAGE) GetRedPacketBalanceAmount() float32 { if x != nil { return x.RedPacketBalanceAmount } return 0 } func (x *RED_PACKAGE) GetReceivedUserId() int64 { if x != nil { return x.ReceivedUserId } return 0 } func (x *RED_PACKAGE) GetReceivedUserAmount() float32 { if x != nil { return x.ReceivedUserAmount } return 0 } func (x *RED_PACKAGE) GetReceivedUserNickname() string { if x != nil { return x.ReceivedUserNickname } return "" } func (x *RED_PACKAGE) GetRedPacketStatusType() RedPacketStatusType { if x != nil { return x.RedPacketStatusType } return RedPacketStatusType_RPS_NOT_DRAW } func (x *RED_PACKAGE) GetRedPacketId() int64 { if x != nil { return x.RedPacketId } return 0 } func (x *RED_PACKAGE) GetSendRedPacketUid() int64 { if x != nil { return x.SendRedPacketUid } return 0 } func (x *RED_PACKAGE) GetSendRedPacketNickname() string { if x != nil { return x.SendRedPacketNickname } return "" } func (x *RED_PACKAGE) GetSendRedPacketAvatarUrl() string { if x != nil { return x.SendRedPacketAvatarUrl } return "" } func (x *RED_PACKAGE) GetRedPacketSmallContent() string { if x != nil { return x.RedPacketSmallContent } return "" } // 上行数据 type Input struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type PackageType `protobuf:"varint,1,opt,name=type,proto3,enum=pb.PackageType" json:"type,omitempty"` // 包的类型 RequestId int64 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // 请求id Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // 数据 } func (x *Input) Reset() { *x = Input{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Input) String() string { return protoimpl.X.MessageStringOf(x) } func (*Input) ProtoMessage() {} func (x *Input) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Input.ProtoReflect.Descriptor instead. func (*Input) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{12} } func (x *Input) GetType() PackageType { if x != nil { return x.Type } return PackageType_PT_UNKNOWN } func (x *Input) GetRequestId() int64 { if x != nil { return x.RequestId } return 0 } func (x *Input) GetData() []byte { if x != nil { return x.Data } return nil } // 下行数据 type Output struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type PackageType `protobuf:"varint,1,opt,name=type,proto3,enum=pb.PackageType" json:"type,omitempty"` // 包的类型 RequestId int64 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // 请求id Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` // 错误码 Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` // 错误信息 Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` // 数据 } func (x *Output) Reset() { *x = Output{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Output) String() string { return protoimpl.X.MessageStringOf(x) } func (*Output) ProtoMessage() {} func (x *Output) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Output.ProtoReflect.Descriptor instead. func (*Output) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{13} } func (x *Output) GetType() PackageType { if x != nil { return x.Type } return PackageType_PT_UNKNOWN } func (x *Output) GetRequestId() int64 { if x != nil { return x.RequestId } return 0 } func (x *Output) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *Output) GetMessage() string { if x != nil { return x.Message } return "" } func (x *Output) GetData() []byte { if x != nil { return x.Data } return nil } // 设备登录,package_type:1 type SignInInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DeviceId int64 `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // 设备id UserId int64 `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // 用户id Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` // 秘钥 } func (x *SignInInput) Reset() { *x = SignInInput{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SignInInput) String() string { return protoimpl.X.MessageStringOf(x) } func (*SignInInput) ProtoMessage() {} func (x *SignInInput) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SignInInput.ProtoReflect.Descriptor instead. func (*SignInInput) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{14} } func (x *SignInInput) GetDeviceId() int64 { if x != nil { return x.DeviceId } return 0 } func (x *SignInInput) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *SignInInput) GetToken() string { if x != nil { return x.Token } return "" } // 消息同步请求,package_type:2 type SyncInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Seq int64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` // 客户端已经同步的序列号 } func (x *SyncInput) Reset() { *x = SyncInput{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncInput) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncInput) ProtoMessage() {} func (x *SyncInput) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SyncInput.ProtoReflect.Descriptor instead. func (*SyncInput) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{15} } func (x *SyncInput) GetSeq() int64 { if x != nil { return x.Seq } return 0 } // 消息同步响应,package_type:2 type SyncOutput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Messages []*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` // 消息列表 HasMore bool `protobuf:"varint,2,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` // 是否有更多数据 } func (x *SyncOutput) Reset() { *x = SyncOutput{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SyncOutput) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncOutput) ProtoMessage() {} func (x *SyncOutput) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SyncOutput.ProtoReflect.Descriptor instead. func (*SyncOutput) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{16} } func (x *SyncOutput) GetMessages() []*Message { if x != nil { return x.Messages } return nil } func (x *SyncOutput) GetHasMore() bool { if x != nil { return x.HasMore } return false } // 订阅房间请求 type SubscribeRoomInput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoomId int64 `protobuf:"varint,1,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"` // 房间ID,如果为0,取消房间订阅 Seq int64 `protobuf:"varint,2,opt,name=seq,proto3" json:"seq,omitempty"` // 消息消息序列号, } func (x *SubscribeRoomInput) Reset() { *x = SubscribeRoomInput{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SubscribeRoomInput) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubscribeRoomInput) ProtoMessage() {} func (x *SubscribeRoomInput) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubscribeRoomInput.ProtoReflect.Descriptor instead. func (*SubscribeRoomInput) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{17} } func (x *SubscribeRoomInput) GetRoomId() int64 { if x != nil { return x.RoomId } return 0 } func (x *SubscribeRoomInput) GetSeq() int64 { if x != nil { return x.Seq } return 0 } // 消息投递,package_type:4 type MessageSend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message *Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // 消息 } func (x *MessageSend) Reset() { *x = MessageSend{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageSend) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageSend) ProtoMessage() {} func (x *MessageSend) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageSend.ProtoReflect.Descriptor instead. func (*MessageSend) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{18} } func (x *MessageSend) GetMessage() *Message { if x != nil { return x.Message } return nil } // 投递消息回执,package_type:4 type MessageACK struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DeviceAck int64 `protobuf:"varint,2,opt,name=device_ack,json=deviceAck,proto3" json:"device_ack,omitempty"` // 设备收到消息的确认号 ReceiveTime int64 `protobuf:"varint,3,opt,name=receive_time,json=receiveTime,proto3" json:"receive_time,omitempty"` // 消息接收时间戳,精确到毫秒 } func (x *MessageACK) Reset() { *x = MessageACK{} if protoimpl.UnsafeEnabled { mi := &file_connect_ext_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MessageACK) String() string { return protoimpl.X.MessageStringOf(x) } func (*MessageACK) ProtoMessage() {} func (x *MessageACK) ProtoReflect() protoreflect.Message { mi := &file_connect_ext_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use MessageACK.ProtoReflect.Descriptor instead. func (*MessageACK) Descriptor() ([]byte, []int) { return file_connect_ext_proto_rawDescGZIP(), []int{19} } func (x *MessageACK) GetDeviceAck() int64 { if x != nil { return x.DeviceAck } return 0 } func (x *MessageACK) GetReceiveTime() int64 { if x != nil { return x.ReceiveTime } return 0 } var File_connect_ext_proto protoreflect.FileDescriptor var file_connect_ext_proto_rawDesc = []byte{ 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2e, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xdc, 0x02, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x22, 0x1a, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x3a, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x59, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x7c, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72, 0x6c, 0x22, 0x50, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x58, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x1c, 0x0a, 0x06, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x27, 0x0a, 0x06, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x65, 0x71, 0x22, 0xaa, 0x06, 0x0a, 0x0b, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x12, 0x42, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x75, 0x6d, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x16, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x13, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x55, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x59, 0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x1d, 0x0a, 0x09, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0x50, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x27, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, 0x3f, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, 0x34, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4e, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x43, 0x4b, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2a, 0x73, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x54, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x54, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x52, 0x54, 0x42, 0x45, 0x41, 0x54, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x54, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x05, 0x2a, 0xb3, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x54, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x54, 0x5f, 0x46, 0x41, 0x43, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x54, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x54, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x10, 0x0a, 0x2a, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x50, 0x54, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x50, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x50, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4c, 0x55, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x50, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x4c, 0x59, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x50, 0x54, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x46, 0x4f, 0x52, 0x10, 0x05, 0x2a, 0x43, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4d, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x4d, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x4d, 0x54, 0x5f, 0x47, 0x52, 0x41, 0x42, 0x10, 0x02, 0x2a, 0x5b, 0x0a, 0x13, 0x52, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x50, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x50, 0x53, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x50, 0x53, 0x5f, 0x44, 0x52, 0x41, 0x57, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x50, 0x53, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x10, 0x03, 0x2a, 0x46, 0x0a, 0x0c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x54, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x03, 0x2a, 0x49, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x5f, 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x03, 0x2a, 0x3d, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x53, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x2a, 0x51, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x01, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x69, 0x6d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x62, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_connect_ext_proto_rawDescOnce sync.Once file_connect_ext_proto_rawDescData = file_connect_ext_proto_rawDesc ) func file_connect_ext_proto_rawDescGZIP() []byte { file_connect_ext_proto_rawDescOnce.Do(func() { file_connect_ext_proto_rawDescData = protoimpl.X.CompressGZIP(file_connect_ext_proto_rawDescData) }) return file_connect_ext_proto_rawDescData } var file_connect_ext_proto_enumTypes = make([]protoimpl.EnumInfo, 9) var file_connect_ext_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_connect_ext_proto_goTypes = []interface{}{ (PackageType)(0), // 0: pb.PackageType (MessageType)(0), // 1: pb.MessageType (RedPacketType)(0), // 2: pb.RedPacketType (RedPacketMessageType)(0), // 3: pb.RedPacketMessageType (RedPacketStatusType)(0), // 4: pb.RedPacketStatusType (ReceiverType)(0), // 5: pb.ReceiverType (SenderType)(0), // 6: pb.SenderType (MessageStatus)(0), // 7: pb.MessageStatus (GroupUserStatusType)(0), // 8: pb.GroupUserStatusType (*Message)(nil), // 9: pb.Message (*Sender)(nil), // 10: pb.Sender (*Text)(nil), // 11: pb.Text (*Face)(nil), // 12: pb.Face (*Voice)(nil), // 13: pb.Voice (*Image)(nil), // 14: pb.Image (*File)(nil), // 15: pb.File (*Location)(nil), // 16: pb.Location (*Command)(nil), // 17: pb.Command (*Custom)(nil), // 18: pb.Custom (*RECALL)(nil), // 19: pb.RECALL (*RED_PACKAGE)(nil), // 20: pb.RED_PACKAGE (*Input)(nil), // 21: pb.Input (*Output)(nil), // 22: pb.Output (*SignInInput)(nil), // 23: pb.SignInInput (*SyncInput)(nil), // 24: pb.SyncInput (*SyncOutput)(nil), // 25: pb.SyncOutput (*SubscribeRoomInput)(nil), // 26: pb.SubscribeRoomInput (*MessageSend)(nil), // 27: pb.MessageSend (*MessageACK)(nil), // 28: pb.MessageACK } var file_connect_ext_proto_depIdxs = []int32{ 10, // 0: pb.Message.sender:type_name -> pb.Sender 5, // 1: pb.Message.receiver_type:type_name -> pb.ReceiverType 1, // 2: pb.Message.message_type:type_name -> pb.MessageType 7, // 3: pb.Message.status:type_name -> pb.MessageStatus 6, // 4: pb.Sender.sender_type:type_name -> pb.SenderType 3, // 5: pb.RED_PACKAGE.red_message_type:type_name -> pb.RedPacketMessageType 2, // 6: pb.RED_PACKAGE.red_packet_type:type_name -> pb.RedPacketType 4, // 7: pb.RED_PACKAGE.red_packet_status_type:type_name -> pb.RedPacketStatusType 0, // 8: pb.Input.type:type_name -> pb.PackageType 0, // 9: pb.Output.type:type_name -> pb.PackageType 9, // 10: pb.SyncOutput.messages:type_name -> pb.Message 9, // 11: pb.MessageSend.message:type_name -> pb.Message 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name } func init() { file_connect_ext_proto_init() } func file_connect_ext_proto_init() { if File_connect_ext_proto != nil { return } if !protoimpl.UnsafeEnabled { file_connect_ext_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Sender); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Text); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Face); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Voice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Image); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*File); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Location); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Command); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Custom); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RECALL); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RED_PACKAGE); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Input); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Output); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SignInInput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncInput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncOutput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribeRoomInput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageSend); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_connect_ext_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageACK); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_connect_ext_proto_rawDesc, NumEnums: 9, NumMessages: 20, NumExtensions: 0, NumServices: 0, }, GoTypes: file_connect_ext_proto_goTypes, DependencyIndexes: file_connect_ext_proto_depIdxs, EnumInfos: file_connect_ext_proto_enumTypes, MessageInfos: file_connect_ext_proto_msgTypes, }.Build() File_connect_ext_proto = out.File file_connect_ext_proto_rawDesc = nil file_connect_ext_proto_goTypes = nil file_connect_ext_proto_depIdxs = nil }