change send message by ws and optimization

This commit is contained in:
Gordon
2021-10-21 19:10:55 +08:00
parent c8155553b8
commit 098c7cfa9e
24 changed files with 603 additions and 227 deletions
+172 -81
View File
@@ -50,7 +50,7 @@ func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} }
func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) }
func (*WSToMsgSvrChatMsg) ProtoMessage() {}
func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{0}
return fileDescriptor_chat_4f51bfe711d80421, []int{0}
}
func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b)
@@ -215,7 +215,7 @@ func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{}
func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) }
func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {}
func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{1}
return fileDescriptor_chat_4f51bfe711d80421, []int{1}
}
func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b)
@@ -361,7 +361,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} }
func (m *PullMessageReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageReq) ProtoMessage() {}
func (*PullMessageReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{2}
return fileDescriptor_chat_4f51bfe711d80421, []int{2}
}
func (m *PullMessageReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageReq.Unmarshal(m, b)
@@ -425,7 +425,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} }
func (m *PullMessageResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageResp) ProtoMessage() {}
func (*PullMessageResp) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{3}
return fileDescriptor_chat_4f51bfe711d80421, []int{3}
}
func (m *PullMessageResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageResp.Unmarshal(m, b)
@@ -487,6 +487,60 @@ func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat {
return nil
}
type PullMessageBySeqListReq struct {
UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"`
SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq{} }
func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListReq) ProtoMessage() {}
func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_4f51bfe711d80421, []int{4}
}
func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b)
}
func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic)
}
func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) {
xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src)
}
func (m *PullMessageBySeqListReq) XXX_Size() int {
return xxx_messageInfo_PullMessageBySeqListReq.Size(m)
}
func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() {
xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m)
}
var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo
func (m *PullMessageBySeqListReq) GetUserID() string {
if m != nil {
return m.UserID
}
return ""
}
func (m *PullMessageBySeqListReq) GetOperationID() string {
if m != nil {
return m.OperationID
}
return ""
}
func (m *PullMessageBySeqListReq) GetSeqList() []int64 {
if m != nil {
return m.SeqList
}
return nil
}
type GetNewSeqReq struct {
UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"`
@@ -499,7 +553,7 @@ func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} }
func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetNewSeqReq) ProtoMessage() {}
func (*GetNewSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{4}
return fileDescriptor_chat_4f51bfe711d80421, []int{5}
}
func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b)
@@ -546,7 +600,7 @@ func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} }
func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetNewSeqResp) ProtoMessage() {}
func (*GetNewSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{5}
return fileDescriptor_chat_4f51bfe711d80421, []int{6}
}
func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b)
@@ -601,7 +655,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} }
func (m *GatherFormat) String() string { return proto.CompactTextString(m) }
func (*GatherFormat) ProtoMessage() {}
func (*GatherFormat) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{6}
return fileDescriptor_chat_4f51bfe711d80421, []int{7}
}
func (m *GatherFormat) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GatherFormat.Unmarshal(m, b)
@@ -669,7 +723,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} }
func (m *MsgFormat) String() string { return proto.CompactTextString(m) }
func (*MsgFormat) ProtoMessage() {}
func (*MsgFormat) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{7}
return fileDescriptor_chat_4f51bfe711d80421, []int{8}
}
func (m *MsgFormat) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgFormat.Unmarshal(m, b)
@@ -791,6 +845,7 @@ type UserSendMsgReq struct {
ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"`
OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"`
Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"`
SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -800,7 +855,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} }
func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgReq) ProtoMessage() {}
func (*UserSendMsgReq) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{8}
return fileDescriptor_chat_4f51bfe711d80421, []int{9}
}
func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b)
@@ -939,13 +994,19 @@ func (m *UserSendMsgReq) GetEx() string {
return ""
}
func (m *UserSendMsgReq) GetSendTime() int64 {
if m != nil {
return m.SendTime
}
return 0
}
type UserSendMsgResp struct {
ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"`
ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"`
ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"`
SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"`
ServerMsgID string `protobuf:"bytes,6,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"`
ClientMsgID string `protobuf:"bytes,7,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"`
ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"`
ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -955,7 +1016,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} }
func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgResp) ProtoMessage() {}
func (*UserSendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_chat_34beadf7348900d2, []int{9}
return fileDescriptor_chat_4f51bfe711d80421, []int{10}
}
func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b)
@@ -996,13 +1057,6 @@ func (m *UserSendMsgResp) GetReqIdentifier() int32 {
return 0
}
func (m *UserSendMsgResp) GetSendTime() int64 {
if m != nil {
return m.SendTime
}
return 0
}
func (m *UserSendMsgResp) GetServerMsgID() string {
if m != nil {
return m.ServerMsgID
@@ -1022,6 +1076,7 @@ func init() {
proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg")
proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq")
proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp")
proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq")
proto.RegisterType((*GetNewSeqReq)(nil), "pbChat.GetNewSeqReq")
proto.RegisterType((*GetNewSeqResp)(nil), "pbChat.GetNewSeqResp")
proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat")
@@ -1043,6 +1098,7 @@ const _ = grpc.SupportPackageIsVersion4
type ChatClient interface {
GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error)
PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error)
PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error)
UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error)
}
@@ -1072,6 +1128,15 @@ func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts .
return out, nil
}
func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) {
out := new(PullMessageResp)
err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) {
out := new(UserSendMsgResp)
err := grpc.Invoke(ctx, "/pbChat.Chat/UserSendMsg", in, out, c.cc, opts...)
@@ -1086,6 +1151,7 @@ func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts .
type ChatServer interface {
GetNewSeq(context.Context, *GetNewSeqReq) (*GetNewSeqResp, error)
PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error)
PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error)
UserSendMsg(context.Context, *UserSendMsgReq) (*UserSendMsgResp, error)
}
@@ -1129,6 +1195,24 @@ func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(in
return interceptor(ctx, in, info, handler)
}
func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PullMessageBySeqListReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ChatServer).PullMessageBySeqList(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/pbChat.Chat/PullMessageBySeqList",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq))
}
return interceptor(ctx, in, info, handler)
}
func _Chat_UserSendMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UserSendMsgReq)
if err := dec(in); err != nil {
@@ -1159,6 +1243,10 @@ var _Chat_serviceDesc = grpc.ServiceDesc{
MethodName: "PullMessage",
Handler: _Chat_PullMessage_Handler,
},
{
MethodName: "PullMessageBySeqList",
Handler: _Chat_PullMessageBySeqList_Handler,
},
{
MethodName: "UserSendMsg",
Handler: _Chat_UserSendMsg_Handler,
@@ -1168,66 +1256,69 @@ var _Chat_serviceDesc = grpc.ServiceDesc{
Metadata: "chat/chat.proto",
}
func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_34beadf7348900d2) }
func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_4f51bfe711d80421) }
var fileDescriptor_chat_34beadf7348900d2 = []byte{
// 919 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5f, 0x6b, 0xe3, 0x46,
0x10, 0xc7, 0x96, 0x2d, 0x5b, 0xe3, 0xbf, 0x59, 0xae, 0xe9, 0x12, 0x4a, 0x31, 0xe6, 0x5a, 0x4c,
0x1f, 0x52, 0xb8, 0xbe, 0x1c, 0x2d, 0xf4, 0xe1, 0x62, 0x27, 0x15, 0x44, 0xb9, 0x20, 0xf9, 0x28,
0xf4, 0x4d, 0xe7, 0xac, 0x15, 0x71, 0xb6, 0x24, 0xef, 0x2a, 0x69, 0xfa, 0xd2, 0xaf, 0xd0, 0x7e,
0xa4, 0xbe, 0xf6, 0xa3, 0xf4, 0x2b, 0x14, 0x0a, 0x65, 0x77, 0x25, 0x6b, 0x57, 0x72, 0x1c, 0x13,
0xc8, 0x4b, 0xc8, 0xfc, 0x34, 0xb3, 0xbb, 0x33, 0xf3, 0x9b, 0xdf, 0x18, 0x06, 0x8b, 0x5b, 0x3f,
0xfd, 0x96, 0xff, 0x39, 0x4d, 0x68, 0x9c, 0xc6, 0xc8, 0x4c, 0x3e, 0x9e, 0xdd, 0xfa, 0xe9, 0xf8,
0x8f, 0x06, 0x1c, 0xfd, 0xec, 0xcd, 0x63, 0x87, 0x05, 0xde, 0x3d, 0xe5, 0x90, 0xc3, 0x02, 0x74,
0x0c, 0xa6, 0x47, 0xa2, 0x1b, 0x7b, 0x8a, 0x6b, 0xa3, 0xda, 0xc4, 0x72, 0x33, 0x8b, 0xe3, 0x2e,
0x59, 0xdc, 0xdb, 0x53, 0x5c, 0x97, 0xb8, 0xb4, 0x10, 0x86, 0xd6, 0x59, 0x1c, 0xa5, 0x24, 0x4a,
0xb1, 0x21, 0x3e, 0xe4, 0x26, 0x3a, 0x81, 0x36, 0x8f, 0x9d, 0x87, 0x6b, 0x82, 0x1b, 0xa3, 0xda,
0xc4, 0x70, 0xb7, 0x36, 0x8f, 0x72, 0x58, 0x70, 0x4e, 0xe3, 0x35, 0x6e, 0x8e, 0x6a, 0x93, 0xa6,
0x9b, 0x9b, 0xe8, 0x6b, 0xe8, 0x73, 0x2f, 0x42, 0xaf, 0xc2, 0xc5, 0xa7, 0x2b, 0x7f, 0x4d, 0xb0,
0x29, 0x8e, 0x2d, 0xa1, 0xe8, 0x35, 0xf4, 0x24, 0x72, 0xee, 0x2f, 0xc8, 0x07, 0xf7, 0x12, 0xb7,
0x84, 0x9b, 0x0e, 0xa2, 0x11, 0x74, 0xb2, 0xe7, 0xcc, 0x7f, 0x4b, 0x08, 0x6e, 0x8b, 0xbb, 0x54,
0x88, 0x7b, 0x78, 0x84, 0xb1, 0x30, 0x8e, 0x84, 0x87, 0x25, 0x3d, 0x14, 0x88, 0x7b, 0xbc, 0x4f,
0x08, 0xf5, 0xd3, 0x30, 0x8e, 0xec, 0x29, 0x06, 0x71, 0x8f, 0x0a, 0xa1, 0x57, 0xd0, 0x74, 0x58,
0x60, 0x4f, 0x71, 0x47, 0x7c, 0x93, 0x06, 0x47, 0xe7, 0xf1, 0x27, 0x12, 0xe1, 0xae, 0x44, 0x85,
0x21, 0x4e, 0x5b, 0x2e, 0x57, 0x61, 0x44, 0xec, 0x68, 0x19, 0xe3, 0x5e, 0x76, 0x5a, 0x01, 0xf1,
0xda, 0xbc, 0x4f, 0xf8, 0xc9, 0x0c, 0xf7, 0x65, 0x45, 0x33, 0x13, 0x7d, 0x09, 0x70, 0xbd, 0xf2,
0xd3, 0x65, 0x4c, 0xd7, 0xf6, 0x14, 0x0f, 0xc4, 0x53, 0x15, 0x04, 0x7d, 0x01, 0xd6, 0x79, 0x4c,
0x17, 0xe4, 0x32, 0x64, 0x29, 0x1e, 0x8e, 0x8c, 0x89, 0xe5, 0x16, 0x80, 0xa8, 0xc5, 0x2a, 0x24,
0x51, 0x2a, 0xdf, 0x7a, 0x24, 0x6f, 0x56, 0xa0, 0xf1, 0xbf, 0x06, 0x1c, 0x4b, 0x36, 0xcc, 0xe3,
0xeb, 0x3b, 0x76, 0xfb, 0x22, 0xb4, 0xc0, 0xd0, 0xe2, 0x3e, 0x1e, 0xd9, 0x64, 0xac, 0xc8, 0x4d,
0x8d, 0x30, 0xcd, 0xc7, 0x09, 0x63, 0x3e, 0x45, 0x98, 0xd6, 0x61, 0x84, 0x69, 0x1f, 0x40, 0x18,
0xeb, 0x49, 0xc2, 0xc0, 0x93, 0x84, 0xe9, 0xec, 0x21, 0x4c, 0x57, 0x25, 0xcc, 0x4b, 0x52, 0xa3,
0xd4, 0xfc, 0x61, 0xb5, 0xf9, 0xbf, 0x43, 0xff, 0xfa, 0x6e, 0xb5, 0x72, 0x08, 0x63, 0x7e, 0x40,
0x5c, 0xb2, 0xe1, 0xbd, 0xfd, 0xc0, 0x08, 0x2d, 0x7a, 0x2e, 0x2d, 0xd9, 0xa7, 0xcd, 0x3b, 0x12,
0x84, 0x91, 0xe8, 0xba, 0xe8, 0x93, 0xb4, 0x25, 0x4f, 0x36, 0xb3, 0xe8, 0x46, 0xb4, 0xdd, 0x70,
0x33, 0xab, 0x5c, 0x93, 0x46, 0xa5, 0x26, 0xe3, 0x7f, 0x6a, 0x30, 0xd0, 0x1e, 0xc0, 0x12, 0x9e,
0xef, 0x8c, 0xd2, 0xb3, 0xf8, 0x86, 0x88, 0x27, 0x34, 0xdd, 0xdc, 0xe4, 0xf7, 0xcc, 0x28, 0x75,
0x58, 0x90, 0xf3, 0x4e, 0x5a, 0x1c, 0x77, 0xfc, 0x07, 0x4e, 0xae, 0xec, 0x7e, 0x69, 0x09, 0x3c,
0x8c, 0x0a, 0xd2, 0x65, 0x16, 0xfa, 0x1e, 0x7a, 0x5e, 0x18, 0x05, 0x2b, 0xc2, 0x73, 0xe3, 0xc7,
0x35, 0x47, 0xc6, 0xa4, 0xf3, 0xe6, 0xd5, 0xa9, 0x14, 0xc9, 0xd3, 0x0b, 0x3f, 0xbd, 0x25, 0xf4,
0x3c, 0xa6, 0x6b, 0x3f, 0x75, 0x75, 0x57, 0xf4, 0x16, 0xba, 0x17, 0x34, 0xbe, 0x4b, 0xf2, 0x50,
0x73, 0x4f, 0xa8, 0xe6, 0x39, 0xfe, 0x09, 0xba, 0x17, 0x24, 0xbd, 0x22, 0xbf, 0x7a, 0x64, 0xb3,
0xaf, 0xd2, 0xa5, 0xaa, 0xd5, 0xab, 0x55, 0xf3, 0xa0, 0xa7, 0x9c, 0xf4, 0xac, 0x92, 0x0d, 0xc1,
0x28, 0xea, 0xc5, 0xff, 0x1d, 0xcf, 0xa0, 0xab, 0x3e, 0x1e, 0xf5, 0xa1, 0xbe, 0x7d, 0x5a, 0xdd,
0x9e, 0xa2, 0xaf, 0xa0, 0x21, 0x24, 0xa6, 0x2e, 0x12, 0x3e, 0xca, 0x13, 0xe6, 0x13, 0x29, 0xb3,
0x15, 0x9f, 0xc7, 0xff, 0xd5, 0xc1, 0xda, 0x62, 0xcf, 0x51, 0x90, 0x7c, 0xe2, 0x0d, 0x7d, 0xe2,
0x4b, 0x33, 0xda, 0x78, 0x64, 0x46, 0xe9, 0xbd, 0x28, 0xb6, 0x3d, 0x15, 0x62, 0x62, 0xb9, 0x2a,
0xa4, 0xea, 0x93, 0xa9, 0xeb, 0x53, 0x56, 0x8e, 0xd6, 0xb6, 0x1c, 0x9a, 0x2e, 0xb5, 0x4b, 0xba,
0xf4, 0x0d, 0x0c, 0xa5, 0x80, 0x28, 0xd3, 0x27, 0x45, 0xa3, 0x82, 0xef, 0x50, 0x2a, 0x38, 0x4c,
0xa9, 0x3a, 0x8f, 0x29, 0x95, 0x32, 0xd1, 0xdd, 0xea, 0x44, 0xff, 0xd9, 0x80, 0x3e, 0x27, 0x12,
0x8f, 0x73, 0x58, 0xc0, 0x89, 0xf6, 0x1a, 0x7a, 0x2e, 0xd9, 0xd8, 0x37, 0x24, 0x4a, 0xc3, 0x65,
0x48, 0x68, 0xc6, 0x11, 0x1d, 0x2c, 0x36, 0x57, 0x5d, 0xdd, 0x5c, 0x45, 0x03, 0x0d, 0xad, 0x81,
0x4f, 0x8e, 0xf6, 0x8e, 0xc4, 0x9b, 0x87, 0x25, 0x6e, 0xee, 0x4a, 0x5c, 0x97, 0xba, 0xd6, 0x2e,
0xa9, 0x53, 0x05, 0xba, 0x5d, 0x15, 0x68, 0x85, 0x5a, 0xd6, 0x5e, 0x6a, 0x41, 0x95, 0x5a, 0x05,
0x5d, 0x3b, 0x1a, 0x5d, 0xb5, 0xdd, 0xdb, 0x2d, 0xef, 0x5e, 0x85, 0x6e, 0xbd, 0xca, 0x3a, 0x7c,
0x44, 0xd2, 0x4b, 0x0d, 0x1e, 0x54, 0x1a, 0x9c, 0x2d, 0x8c, 0xcb, 0x7c, 0x61, 0x0c, 0xb7, 0x0b,
0x23, 0x87, 0xf8, 0xe4, 0xce, 0x1e, 0xb2, 0x55, 0x5f, 0x9f, 0x3d, 0x8c, 0xff, 0xae, 0xc1, 0x40,
0xa3, 0xc4, 0xb3, 0x14, 0xa3, 0xc2, 0x22, 0x63, 0x17, 0x8b, 0xf6, 0xad, 0xf3, 0xd2, 0x80, 0x9a,
0xd5, 0x01, 0x2d, 0x65, 0xdf, 0xaa, 0x64, 0xff, 0xe6, 0xaf, 0x1a, 0x34, 0xb8, 0xee, 0xa0, 0xb7,
0x60, 0x6d, 0x35, 0x10, 0x15, 0xf2, 0xab, 0x08, 0xec, 0xc9, 0x67, 0x3b, 0x50, 0x96, 0xa0, 0x1f,
0xa1, 0xa3, 0xac, 0x1c, 0x74, 0x9c, 0x7b, 0xe9, 0x8b, 0xf0, 0xe4, 0xf3, 0x9d, 0xb8, 0x8c, 0x57,
0xaa, 0x59, 0xc4, 0xeb, 0x53, 0x57, 0xc4, 0x97, 0x4a, 0xff, 0xae, 0xf7, 0x4b, 0x87, 0xff, 0x30,
0xff, 0x41, 0x7e, 0xfe, 0x68, 0x8a, 0x1f, 0xe8, 0xdf, 0xfd, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xfe,
0xa0, 0x14, 0x71, 0xb3, 0x0b, 0x00, 0x00,
var fileDescriptor_chat_4f51bfe711d80421 = []byte{
// 970 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6a, 0xe3, 0x46,
0x14, 0xc6, 0x92, 0x7f, 0xa2, 0x23, 0xff, 0x65, 0x48, 0xb3, 0x43, 0x28, 0xad, 0x11, 0xdb, 0x62,
0x7a, 0x91, 0xc2, 0xf6, 0x66, 0x69, 0x61, 0x2f, 0x12, 0x3b, 0xa9, 0x20, 0xce, 0x06, 0xc9, 0x4b,
0xa1, 0x77, 0x5a, 0x67, 0xac, 0x88, 0xb5, 0x25, 0x79, 0x46, 0x49, 0xb3, 0x37, 0x7d, 0x85, 0x42,
0x9f, 0xa3, 0x7d, 0xb0, 0xbe, 0x42, 0xa1, 0x50, 0x66, 0x46, 0xb2, 0x46, 0x3f, 0x4e, 0x42, 0x96,
0xbd, 0x59, 0xf6, 0xfb, 0x74, 0xe6, 0xe7, 0x9c, 0xf3, 0xcd, 0x77, 0x62, 0x18, 0x2c, 0x6e, 0xbc,
0xe4, 0x7b, 0xfe, 0xcf, 0x71, 0x4c, 0xa3, 0x24, 0x42, 0xed, 0xf8, 0xfd, 0xe9, 0x8d, 0x97, 0x58,
0x7f, 0x34, 0x61, 0xff, 0x17, 0x77, 0x1e, 0xcd, 0x98, 0xef, 0xde, 0x51, 0x4e, 0xcd, 0x98, 0x8f,
0x0e, 0xa1, 0xed, 0x92, 0xf0, 0xda, 0x9e, 0xe0, 0xc6, 0xa8, 0x31, 0x36, 0x9c, 0x14, 0x71, 0xde,
0x21, 0x8b, 0x3b, 0x7b, 0x82, 0x35, 0xc9, 0x4b, 0x84, 0x30, 0x74, 0x4e, 0xa3, 0x30, 0x21, 0x61,
0x82, 0x75, 0xf1, 0x21, 0x83, 0xe8, 0x08, 0xf6, 0xf8, 0xda, 0x79, 0xb0, 0x26, 0xb8, 0x39, 0x6a,
0x8c, 0x75, 0x67, 0x8b, 0xf9, 0xaa, 0x19, 0xf3, 0xcf, 0x68, 0xb4, 0xc6, 0xad, 0x51, 0x63, 0xdc,
0x72, 0x32, 0x88, 0xbe, 0x85, 0x3e, 0x8f, 0x22, 0xf4, 0x32, 0x58, 0x7c, 0xb8, 0xf4, 0xd6, 0x04,
0xb7, 0xc5, 0xb6, 0x25, 0x16, 0xbd, 0x84, 0x9e, 0x64, 0xce, 0xbc, 0x05, 0x79, 0xe7, 0x5c, 0xe0,
0x8e, 0x08, 0x2b, 0x92, 0x68, 0x04, 0x66, 0x7a, 0x9d, 0xf9, 0xc7, 0x98, 0xe0, 0x3d, 0x71, 0x96,
0x4a, 0xf1, 0x08, 0x97, 0x30, 0x16, 0x44, 0xa1, 0x88, 0x30, 0x64, 0x84, 0x42, 0xf1, 0x88, 0xb7,
0x31, 0xa1, 0x5e, 0x12, 0x44, 0xa1, 0x3d, 0xc1, 0x20, 0xce, 0x51, 0x29, 0x74, 0x00, 0xad, 0x19,
0xf3, 0xed, 0x09, 0x36, 0xc5, 0x37, 0x09, 0x38, 0x3b, 0x8f, 0x3e, 0x90, 0x10, 0x77, 0x25, 0x2b,
0x80, 0xd8, 0x6d, 0xb9, 0x5c, 0x05, 0x21, 0xb1, 0xc3, 0x65, 0x84, 0x7b, 0xe9, 0x6e, 0x39, 0xc5,
0x6b, 0xf3, 0x36, 0xe6, 0x3b, 0x33, 0xdc, 0x97, 0x15, 0x4d, 0x21, 0xfa, 0x0a, 0xe0, 0x6a, 0xe5,
0x25, 0xcb, 0x88, 0xae, 0xed, 0x09, 0x1e, 0x88, 0xab, 0x2a, 0x0c, 0xfa, 0x12, 0x8c, 0xb3, 0x88,
0x2e, 0xc8, 0x45, 0xc0, 0x12, 0x3c, 0x1c, 0xe9, 0x63, 0xc3, 0xc9, 0x09, 0x51, 0x8b, 0x55, 0x40,
0xc2, 0x44, 0xde, 0x75, 0x5f, 0x9e, 0xac, 0x50, 0xd6, 0xbf, 0x3a, 0x1c, 0x4a, 0x35, 0xcc, 0xa3,
0xab, 0x5b, 0x76, 0xf3, 0x59, 0x64, 0x81, 0xa1, 0xc3, 0x63, 0x5c, 0xb2, 0x49, 0x55, 0x91, 0xc1,
0x82, 0x60, 0x5a, 0xbb, 0x05, 0xd3, 0x7e, 0x4c, 0x30, 0x9d, 0xa7, 0x09, 0x66, 0xef, 0x09, 0x82,
0x31, 0x1e, 0x15, 0x0c, 0x3c, 0x2a, 0x18, 0xf3, 0x01, 0xc1, 0x74, 0x55, 0xc1, 0x7c, 0x4e, 0x69,
0x94, 0x9a, 0x3f, 0xac, 0x36, 0xff, 0x77, 0xe8, 0x5f, 0xdd, 0xae, 0x56, 0x33, 0xc2, 0x98, 0xe7,
0x13, 0x87, 0x6c, 0x78, 0x6f, 0xdf, 0x31, 0x42, 0xf3, 0x9e, 0x4b, 0x24, 0xfb, 0xb4, 0x39, 0x21,
0x7e, 0x10, 0x8a, 0xae, 0x8b, 0x3e, 0x49, 0x2c, 0x75, 0xb2, 0x99, 0x86, 0xd7, 0xa2, 0xed, 0xba,
0x93, 0xa2, 0x72, 0x4d, 0x9a, 0x95, 0x9a, 0x58, 0xff, 0x34, 0x60, 0x50, 0xb8, 0x00, 0x8b, 0x79,
0xbe, 0x53, 0x4a, 0x4f, 0xa3, 0x6b, 0x22, 0xae, 0xd0, 0x72, 0x32, 0xc8, 0xcf, 0x99, 0x52, 0x3a,
0x63, 0x7e, 0xa6, 0x3b, 0x89, 0x38, 0x3f, 0xf3, 0xee, 0xb9, 0xb8, 0xd2, 0xf3, 0x25, 0x12, 0x7c,
0x10, 0xe6, 0xa2, 0x4b, 0x11, 0xfa, 0x11, 0x7a, 0x6e, 0x10, 0xfa, 0x2b, 0xc2, 0x73, 0xe3, 0xdb,
0xb5, 0x46, 0xfa, 0xd8, 0x7c, 0x75, 0x70, 0x2c, 0x4d, 0xf2, 0xf8, 0xdc, 0x4b, 0x6e, 0x08, 0x3d,
0x8b, 0xe8, 0xda, 0x4b, 0x9c, 0x62, 0x28, 0x7a, 0x0d, 0xdd, 0x73, 0x1a, 0xdd, 0xc6, 0xd9, 0xd2,
0xf6, 0x03, 0x4b, 0x0b, 0x91, 0xd6, 0x1a, 0x5e, 0x28, 0xa9, 0x9e, 0x7c, 0x74, 0xc9, 0x86, 0x3f,
0xd1, 0x87, 0x8a, 0x5e, 0x2a, 0xa0, 0x56, 0x15, 0x15, 0x86, 0x0e, 0x93, 0xfb, 0x60, 0x7d, 0xa4,
0xf3, 0x87, 0x95, 0x42, 0xeb, 0x67, 0xe8, 0x9e, 0x93, 0xe4, 0x92, 0xfc, 0xe6, 0x92, 0xcd, 0x27,
0x9d, 0x61, 0xb9, 0xd0, 0x53, 0x76, 0x7a, 0x56, 0x87, 0x86, 0xa0, 0xe7, 0xed, 0xe1, 0xff, 0xb5,
0xa6, 0xd0, 0x55, 0x6b, 0x85, 0xfa, 0xa0, 0x6d, 0xaf, 0xa6, 0xd9, 0x13, 0xf4, 0x0d, 0x34, 0x45,
0x56, 0x9a, 0xa8, 0xef, 0x7e, 0x56, 0x5f, 0x6e, 0x00, 0xb2, 0xb8, 0xe2, 0xb3, 0xf5, 0x9f, 0x06,
0xc6, 0x96, 0x7b, 0x8e, 0x61, 0x65, 0x06, 0xa3, 0x17, 0x0d, 0xa6, 0x64, 0x09, 0xcd, 0x1d, 0x96,
0x40, 0xef, 0x44, 0x6f, 0xed, 0x89, 0xf0, 0x2e, 0xc3, 0x51, 0x29, 0xd5, 0x0e, 0xdb, 0x45, 0x3b,
0x4c, 0xcb, 0xd1, 0xd9, 0x96, 0xa3, 0x60, 0x83, 0x7b, 0x25, 0x1b, 0xfc, 0x0e, 0x86, 0xd2, 0xaf,
0x94, 0xc7, 0x2e, 0x3d, 0xaa, 0xc2, 0xd7, 0x18, 0x23, 0x3c, 0xcd, 0x18, 0xcd, 0x5d, 0xc6, 0xa8,
0x18, 0x48, 0xb7, 0x6a, 0x20, 0x7f, 0x35, 0xa1, 0xcf, 0x85, 0xc4, 0xd7, 0xcd, 0x98, 0xcf, 0x85,
0xf6, 0x12, 0x7a, 0x0e, 0xd9, 0xd8, 0xd7, 0x24, 0x4c, 0x82, 0x65, 0x40, 0x68, 0xaa, 0x91, 0x22,
0x99, 0x0f, 0x4a, 0x4d, 0x1d, 0x94, 0x79, 0x03, 0xf5, 0x42, 0x03, 0x1f, 0x75, 0x92, 0x9a, 0xc4,
0x5b, 0x4f, 0x4b, 0xbc, 0x5d, 0x97, 0x78, 0xd1, 0x59, 0x3b, 0x75, 0xce, 0xaa, 0xce, 0x83, 0xbd,
0xea, 0x3c, 0x50, 0xa4, 0x65, 0x3c, 0x28, 0x2d, 0xa8, 0x4a, 0x2b, 0x97, 0xab, 0x59, 0x90, 0x6b,
0x61, 0xd4, 0x77, 0xcb, 0xa3, 0x5e, 0x91, 0x5b, 0xaf, 0x32, 0x7d, 0x77, 0x4c, 0x90, 0x52, 0x83,
0x07, 0x95, 0x06, 0xa7, 0xf3, 0xe9, 0x22, 0x9b, 0x4f, 0xc3, 0xed, 0x7c, 0xca, 0x28, 0xfe, 0x72,
0xa7, 0xf7, 0xe9, 0x5f, 0x16, 0xda, 0xf4, 0x9e, 0x4b, 0x99, 0x65, 0x52, 0x46, 0x52, 0xca, 0x19,
0xb6, 0xfe, 0x6e, 0xc0, 0xa0, 0x20, 0x97, 0x67, 0xb9, 0x49, 0x45, 0x61, 0x7a, 0x9d, 0xc2, 0x4a,
0x0f, 0xb4, 0x59, 0x7d, 0xa0, 0xa5, 0xec, 0x5b, 0x95, 0xec, 0x5f, 0xfd, 0xa9, 0x41, 0x93, 0xfb,
0x0e, 0x7a, 0x0d, 0xc6, 0xd6, 0x03, 0x51, 0xee, 0xf6, 0x8a, 0xc1, 0x1e, 0x7d, 0x51, 0xc3, 0xb2,
0x18, 0xbd, 0x01, 0x53, 0xb1, 0x7d, 0x74, 0x98, 0x45, 0x15, 0xe7, 0xee, 0xd1, 0x8b, 0x5a, 0x9e,
0xc5, 0xe8, 0x0a, 0x0e, 0xea, 0xc6, 0x06, 0xfa, 0xba, 0x66, 0x81, 0x3a, 0x54, 0x76, 0xef, 0xf8,
0x06, 0x4c, 0xa5, 0x07, 0xf9, 0x8d, 0x8a, 0xef, 0x38, 0x5f, 0x5f, 0x6a, 0xd8, 0x49, 0xef, 0x57,
0x93, 0xff, 0xb2, 0xf8, 0x49, 0x7e, 0x7e, 0xdf, 0x16, 0xbf, 0x30, 0x7e, 0xf8, 0x3f, 0x00, 0x00,
0xff, 0xff, 0x6c, 0xad, 0x53, 0x41, 0x74, 0x0c, 0x00, 0x00,
}