From 0a260a67d5833a5d32d86a2509588df413a073a9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 2 Jun 2022 17:37:00 +0800 Subject: [PATCH] ws and push update --- internal/msg_gateway/gate/rpc_server.go | 33 ++---- internal/push/logic/push_to_client.go | 129 +++++++++++------------- pkg/proto/relay/relay.pb.go | 121 ++++++++++++---------- pkg/proto/relay/relay.proto | 1 + 4 files changed, 134 insertions(+), 150 deletions(-) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 5249bdce8..2ee614c2d 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -159,11 +159,16 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online } for _, v := range req.PushToUserIDList { var resp []*pbRelay.SingleMsgToUserPlatform + tempT := &pbRelay.SingelMsgToUserResultList{ + UserID: v, + } userConnMap := ws.getUserAllCons(v) for platform, userConn := range userConnMap { if userConn != nil { resultCode := sendMsgBatchToUser(userConn, replyBytes.Bytes(), req, platform, v) - if resultCode == 0 && utils.IsContainInt(platform, r.pushTerminal) { //仅仅记录推送成功的平台端 + if resultCode == 0 && utils.IsContainInt(platform, r.pushTerminal) { + tempT.OnlinePush = true + log.Info(req.OperationID, "PushSuperMsgToUser is success By Ws", "args", req.String(), "recvPlatForm", constant.PlatformIDToName(platform), "recvID", v) temp := &pbRelay.SingleMsgToUserPlatform{ ResultCode: resultCode, RecvID: v, @@ -174,31 +179,7 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online } } - //for _, x := range r.platformList { - // if conn := ws.getUserConn(v, x); conn != nil { - // resultCode := sendMsgBatchToUser(conn, replyBytes.Bytes(), req, x, v) - // temp := &pbRelay.SingleMsgToUserPlatform{ - // ResultCode: resultCode, - // RecvID: v, - // RecvPlatFormID: constant.PlatformNameToID(x), - // } - // resp = append(resp, temp) - // } else { - // if utils.IsContain(x,r.pushTerminal) { - // temp := &pbRelay.SingleMsgToUserPlatform{ - // ResultCode: -1, - // RecvID: v, - // RecvPlatFormID: constant.PlatformNameToID(x), - // } - // resp = append(resp, temp) - // } - // - // } - //} - tempT := &pbRelay.SingelMsgToUserResultList{ - UserID: v, - Resp: resp, - } + tempT.Resp = resp singleUserResult = append(singleUserResult, tempT) } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index c1d183691..589605e02 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -36,7 +36,7 @@ type AtContent struct { var grpcCons []*grpc.ClientConn func MsgToUser(pushMsg *pbPush.PushMsgReq) { - var wsResult []*pbRelay.SingleMsgToUserPlatform + var wsResult []*pbRelay.SingelMsgToUserResultList isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) log.Debug(pushMsg.OperationID, "Get msg from msg_transfer And push msg", pushMsg.String()) if len(grpcCons) == 0 { @@ -47,90 +47,83 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { log.Debug("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) for _, v := range grpcCons { msgClient := pbRelay.NewOnlineMessageRelayServiceClient(v) - reply, err := msgClient.OnlinePushMsg(context.Background(), &pbRelay.OnlinePushMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserID: pushMsg.PushToUserID}) + reply, err := msgClient.OnlineBatchPushOneMsg(context.Background(), &pbRelay.OnlineBatchPushOneMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserIDList: []string{pushMsg.PushToUserID}}) if err != nil { log.NewError("push data to client rpc err", pushMsg.OperationID, "err", err) continue } - if reply != nil && reply.Resp != nil { - wsResult = append(wsResult, reply.Resp...) + if reply != nil && reply.SinglePushResult != nil { + wsResult = append(wsResult, reply.SinglePushResult...) } } log.NewInfo(pushMsg.OperationID, "push_result", wsResult, "sendData", pushMsg.MsgData) successCount++ if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { for _, v := range wsResult { - if v.ResultCode == 0 { - if utils.IsContainInt32(v.RecvPlatFormID, pushTerminal) { - break - } - continue + if v.OnlinePush { + return } - if utils.IsContainInt32(v.RecvPlatFormID, pushTerminal) { - //Use offline push messaging - var UIDList []string - UIDList = append(UIDList, v.RecvID) - customContent := OpenIMContent{ - SessionType: int(pushMsg.MsgData.SessionType), - From: pushMsg.MsgData.SendID, - To: pushMsg.MsgData.RecvID, - Seq: pushMsg.MsgData.Seq, - } - bCustomContent, _ := json.Marshal(customContent) - jsonCustomContent := string(bCustomContent) - var content string - if pushMsg.MsgData.OfflinePushInfo != nil { - content = pushMsg.MsgData.OfflinePushInfo.Title + } + //Use offline push messaging + var UIDList []string + UIDList = append(UIDList, pushMsg.PushToUserID) + customContent := OpenIMContent{ + SessionType: int(pushMsg.MsgData.SessionType), + From: pushMsg.MsgData.SendID, + To: pushMsg.MsgData.RecvID, + Seq: pushMsg.MsgData.Seq, + } + bCustomContent, _ := json.Marshal(customContent) + jsonCustomContent := string(bCustomContent) + var content string + if pushMsg.MsgData.OfflinePushInfo != nil { + content = pushMsg.MsgData.OfflinePushInfo.Title + } else { + switch pushMsg.MsgData.ContentType { + case constant.Text: + content = constant.ContentType2PushContent[constant.Text] + case constant.Picture: + content = constant.ContentType2PushContent[constant.Picture] + case constant.Voice: + content = constant.ContentType2PushContent[constant.Voice] + case constant.Video: + content = constant.ContentType2PushContent[constant.Video] + case constant.File: + content = constant.ContentType2PushContent[constant.File] + case constant.AtText: + a := AtContent{} + _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) + if utils.IsContain(pushMsg.PushToUserID, a.AtUserList) { + content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] } else { - switch pushMsg.MsgData.ContentType { - case constant.Text: - content = constant.ContentType2PushContent[constant.Text] - case constant.Picture: - content = constant.ContentType2PushContent[constant.Picture] - case constant.Voice: - content = constant.ContentType2PushContent[constant.Voice] - case constant.Video: - content = constant.ContentType2PushContent[constant.Video] - case constant.File: - content = constant.ContentType2PushContent[constant.File] - case constant.AtText: - a := AtContent{} - _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) - if utils.IsContain(v.RecvID, a.AtUserList) { - content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] - } else { - content = constant.ContentType2PushContent[constant.GroupMsg] - } - default: - content = constant.ContentType2PushContent[constant.Common] - } - } - callbackResp := callbackOfflinePush(pushMsg.OperationID, UIDList[0], pushMsg.MsgData.OfflinePushInfo, v.RecvPlatFormID) - log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offline callback Resp") - if callbackResp.ErrCode != 0 { - log.NewError(pushMsg.OperationID, utils.GetSelfFuncName(), "callbackOfflinePush result: ", callbackResp) + content = constant.ContentType2PushContent[constant.GroupMsg] } - if callbackResp.ActionCode != constant.ActionAllow { - log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offlinePush stop") - break - } - - if offlinePusher == nil { - offlinePusher = jpush.JPushClient - } - pushResult, err := offlinePusher.Push(UIDList, content, jsonCustomContent, pushMsg.OperationID) - if err != nil { - log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error()) - } else { - log.NewDebug(pushMsg.OperationID, "offline push return result is ", pushResult, pushMsg.MsgData) - } - break + default: + content = constant.ContentType2PushContent[constant.Common] } - + } + callbackResp := callbackOfflinePush(pushMsg.OperationID, UIDList[0], pushMsg.MsgData.OfflinePushInfo, constant.AndroidPlatformID) + log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offline callback Resp") + if callbackResp.ErrCode != 0 { + log.NewError(pushMsg.OperationID, utils.GetSelfFuncName(), "callbackOfflinePush result: ", callbackResp) + } + if callbackResp.ActionCode != constant.ActionAllow { + log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offlinePush stop") + return + } + if offlinePusher == nil { + offlinePusher = jpush.JPushClient + } + pushResult, err := offlinePusher.Push(UIDList, content, jsonCustomContent, pushMsg.OperationID) + if err != nil { + log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error()) + } else { + log.NewDebug(pushMsg.OperationID, "offline push return result is ", pushResult, pushMsg.MsgData) } } + } func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { @@ -155,7 +148,7 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) { // wsResult = append(wsResult, reply.SinglePushResult...) // } //} - //log.NewInfo(pushMsg.OperationID, "push_result", wsResult, "sendData", pushMsg.MsgData) + //log.Debug(pushMsg.OperationID, "push_result", wsResult, "sendData", pushMsg.MsgData) //successCount++ //if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { // for _, v := range wsResult { diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index 122ae56f9..5fecfadd6 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -37,7 +37,7 @@ func (m *OnlinePushMsgReq) Reset() { *m = OnlinePushMsgReq{} } func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgReq) ProtoMessage() {} func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{0} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{0} } func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b) @@ -89,7 +89,7 @@ func (m *OnlinePushMsgResp) Reset() { *m = OnlinePushMsgResp{} } func (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgResp) ProtoMessage() {} func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{1} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{1} } func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b) @@ -119,6 +119,7 @@ func (m *OnlinePushMsgResp) GetResp() []*SingleMsgToUserPlatform { type SingelMsgToUserResultList struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` Resp []*SingleMsgToUserPlatform `protobuf:"bytes,2,rep,name=resp" json:"resp,omitempty"` + OnlinePush bool `protobuf:"varint,3,opt,name=onlinePush" json:"onlinePush,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -128,7 +129,7 @@ func (m *SingelMsgToUserResultList) Reset() { *m = SingelMsgToUserResult func (m *SingelMsgToUserResultList) String() string { return proto.CompactTextString(m) } func (*SingelMsgToUserResultList) ProtoMessage() {} func (*SingelMsgToUserResultList) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{2} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{2} } func (m *SingelMsgToUserResultList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingelMsgToUserResultList.Unmarshal(m, b) @@ -162,6 +163,13 @@ func (m *SingelMsgToUserResultList) GetResp() []*SingleMsgToUserPlatform { return nil } +func (m *SingelMsgToUserResultList) GetOnlinePush() bool { + if m != nil { + return m.OnlinePush + } + return false +} + type OnlineBatchPushOneMsgReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` @@ -175,7 +183,7 @@ func (m *OnlineBatchPushOneMsgReq) Reset() { *m = OnlineBatchPushOneMsgR func (m *OnlineBatchPushOneMsgReq) String() string { return proto.CompactTextString(m) } func (*OnlineBatchPushOneMsgReq) ProtoMessage() {} func (*OnlineBatchPushOneMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{3} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{3} } func (m *OnlineBatchPushOneMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlineBatchPushOneMsgReq.Unmarshal(m, b) @@ -227,7 +235,7 @@ func (m *OnlineBatchPushOneMsgResp) Reset() { *m = OnlineBatchPushOneMsg func (m *OnlineBatchPushOneMsgResp) String() string { return proto.CompactTextString(m) } func (*OnlineBatchPushOneMsgResp) ProtoMessage() {} func (*OnlineBatchPushOneMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{4} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{4} } func (m *OnlineBatchPushOneMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlineBatchPushOneMsgResp.Unmarshal(m, b) @@ -267,7 +275,7 @@ func (m *SingleMsgToUserPlatform) Reset() { *m = SingleMsgToUserPlatform func (m *SingleMsgToUserPlatform) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUserPlatform) ProtoMessage() {} func (*SingleMsgToUserPlatform) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{5} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{5} } func (m *SingleMsgToUserPlatform) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUserPlatform.Unmarshal(m, b) @@ -321,7 +329,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{6} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{6} } func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) @@ -376,7 +384,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{7} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{7} } func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) @@ -438,7 +446,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{7, 0} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{7, 0} } func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) @@ -485,7 +493,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{7, 1} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{7, 1} } func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) @@ -541,7 +549,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_72b82cfd7861903a, []int{7, 2} + return fileDescriptor_relay_77ab6a9fe292f32a, []int{7, 2} } func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) @@ -734,49 +742,50 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_72b82cfd7861903a) } - -var fileDescriptor_relay_72b82cfd7861903a = []byte{ - // 656 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x4f, 0xdb, 0x4e, - 0x10, 0x95, 0x31, 0x7f, 0x7e, 0x0c, 0xf0, 0x2b, 0xac, 0x68, 0x31, 0x3e, 0x04, 0xd7, 0x87, 0x2a, - 0xaa, 0xda, 0x44, 0x4a, 0x7b, 0xeb, 0x0d, 0x22, 0x50, 0x24, 0xa2, 0xa0, 0x4d, 0xab, 0x56, 0x5c, - 0xa2, 0x25, 0x59, 0x8c, 0x85, 0x13, 0x2f, 0x3b, 0x36, 0x88, 0x2f, 0xd1, 0x53, 0xcf, 0x3d, 0xf4, - 0x4b, 0xf4, 0xeb, 0x55, 0xfb, 0x27, 0xa9, 0x0d, 0x0e, 0x28, 0x87, 0x5e, 0xa2, 0xcc, 0xec, 0xec, - 0x9b, 0xf7, 0xde, 0xec, 0xae, 0x61, 0x47, 0xf2, 0x84, 0xdd, 0x37, 0xf5, 0x6f, 0x43, 0xc8, 0x34, - 0x4b, 0xc9, 0x8a, 0x0e, 0xfc, 0xd7, 0x3d, 0xc1, 0x27, 0x83, 0x4e, 0xb7, 0x29, 0xae, 0xa3, 0xa6, - 0x5e, 0x69, 0xe2, 0xe8, 0x7a, 0x70, 0x87, 0xcd, 0x3b, 0x34, 0x95, 0xe1, 0x77, 0x07, 0xb6, 0x7b, - 0x93, 0x24, 0x9e, 0xf0, 0xb3, 0x1c, 0xaf, 0xba, 0x18, 0x51, 0x7e, 0x43, 0x02, 0xd8, 0xe8, 0x09, - 0x2e, 0x59, 0x16, 0xa7, 0x93, 0x4e, 0xdb, 0x73, 0x02, 0xa7, 0xbe, 0x4e, 0x8b, 0x29, 0xf2, 0x11, - 0xd6, 0xc6, 0x18, 0xb5, 0x59, 0xc6, 0xbc, 0xa5, 0xc0, 0xa9, 0x6f, 0xb4, 0xfc, 0x06, 0x72, 0x79, - 0xcb, 0xe5, 0x80, 0x89, 0x78, 0x20, 0x98, 0x64, 0x63, 0x6c, 0x74, 0x4d, 0x05, 0x9d, 0x96, 0x92, - 0x10, 0x36, 0x45, 0x8e, 0x57, 0x9f, 0xd3, 0x2f, 0xc8, 0x65, 0xa7, 0xed, 0xb9, 0x1a, 0xb8, 0x94, - 0x0b, 0x4f, 0x60, 0xe7, 0x01, 0x1f, 0x14, 0xa4, 0x05, 0xcb, 0x92, 0xa3, 0xf0, 0x9c, 0xc0, 0xad, - 0x6f, 0xb4, 0x6a, 0x0d, 0xa3, 0xb5, 0x1f, 0x4f, 0xa2, 0x84, 0x77, 0x31, 0x32, 0x9b, 0xcf, 0x12, - 0x96, 0x5d, 0xa6, 0x72, 0x4c, 0x75, 0x6d, 0x18, 0xc1, 0xbe, 0x2a, 0xe0, 0xc9, 0xac, 0x80, 0x72, - 0xcc, 0x93, 0xec, 0x34, 0xc6, 0x8c, 0xbc, 0x82, 0xd5, 0xdc, 0x70, 0x30, 0xe2, 0x6c, 0x34, 0x6b, - 0xb4, 0xb4, 0x40, 0xa3, 0x9f, 0x0e, 0x78, 0x86, 0xf2, 0x21, 0xcb, 0x86, 0x57, 0x8a, 0x77, 0x6f, - 0xc2, 0xff, 0xb1, 0x95, 0x6f, 0x61, 0xbb, 0x68, 0x9b, 0x12, 0xe5, 0xb9, 0x81, 0x5b, 0x5f, 0xa7, - 0x8f, 0xf2, 0x61, 0x0c, 0xfb, 0x73, 0xf8, 0xa1, 0x20, 0xa7, 0xb0, 0x8d, 0x5a, 0x9e, 0xca, 0x1b, - 0x87, 0xac, 0xcd, 0x41, 0x41, 0x7d, 0xa5, 0x8b, 0xf4, 0xd1, 0xce, 0xf0, 0x1e, 0xf6, 0xe6, 0x98, - 0x45, 0x6a, 0x00, 0xa6, 0xe8, 0x28, 0x1d, 0x71, 0x6d, 0x84, 0x4b, 0x0b, 0x19, 0x35, 0x12, 0xca, - 0x87, 0xb7, 0x9d, 0xb6, 0xb6, 0x61, 0x9d, 0xda, 0x88, 0xbc, 0x81, 0xff, 0xd5, 0x3f, 0x85, 0x73, - 0x9c, 0xca, 0xb1, 0x3d, 0x36, 0x2b, 0xf4, 0x41, 0x36, 0xbc, 0x83, 0xbd, 0x13, 0x9e, 0xa9, 0x96, - 0x68, 0xd4, 0xf6, 0x33, 0x96, 0xe5, 0xa8, 0x86, 0x50, 0x03, 0xc8, 0xff, 0xda, 0xe4, 0x68, 0x9b, - 0x0a, 0x19, 0x35, 0xa4, 0xb4, 0x30, 0x24, 0xd3, 0xbf, 0x98, 0x22, 0x3e, 0xfc, 0x97, 0x8a, 0xd2, - 0xa9, 0x9d, 0xc5, 0xe1, 0xef, 0x65, 0xf0, 0xaa, 0x3b, 0xa3, 0x20, 0x1e, 0xac, 0x71, 0x29, 0x67, - 0x92, 0x57, 0xe8, 0x34, 0x54, 0x7a, 0xb9, 0x94, 0x5d, 0x8c, 0xa6, 0x7a, 0x4d, 0x44, 0xfa, 0xb0, - 0x85, 0xf9, 0x70, 0xc8, 0x11, 0xed, 0x34, 0x5c, 0x3d, 0x8d, 0xf7, 0x76, 0x1a, 0xf3, 0x3a, 0x35, - 0xfa, 0xc5, 0x4d, 0xb4, 0x8c, 0x41, 0xce, 0x60, 0xf3, 0x92, 0xc5, 0x09, 0x1f, 0x59, 0xcc, 0x65, - 0x8d, 0xf9, 0xee, 0x39, 0xcc, 0x63, 0xbd, 0xa7, 0xcd, 0x33, 0x16, 0x27, 0xb4, 0x84, 0xe0, 0x1f, - 0xc1, 0x96, 0xed, 0x68, 0x96, 0x95, 0x45, 0xc2, 0xce, 0xda, 0x1e, 0xf3, 0x59, 0xac, 0xb4, 0xa2, - 0x46, 0x9d, 0x6a, 0x35, 0x91, 0xff, 0x0d, 0x36, 0x8b, 0x2d, 0x0a, 0xd7, 0xd2, 0x2d, 0x5d, 0xcb, - 0x85, 0x5d, 0xf4, 0x7f, 0x39, 0x33, 0x7e, 0xd6, 0x82, 0x79, 0x57, 0x7e, 0x0e, 0x37, 0xc2, 0x60, - 0x77, 0xa4, 0x59, 0x4d, 0x4f, 0xb0, 0xf1, 0x65, 0xc1, 0x71, 0x58, 0xef, 0x2a, 0xa1, 0x5a, 0x3f, - 0x96, 0xa6, 0x37, 0xb3, 0xcb, 0x11, 0x59, 0xc4, 0xa9, 0xc2, 0xec, 0x73, 0x79, 0x1b, 0x0f, 0x39, - 0x39, 0x84, 0xad, 0xd2, 0x4b, 0x48, 0xf6, 0x6c, 0xcf, 0x87, 0xef, 0xb5, 0xef, 0x55, 0x2f, 0xa0, - 0x20, 0x5f, 0x61, 0xb7, 0x8a, 0x21, 0xa9, 0x3d, 0x49, 0xff, 0xc6, 0x3f, 0x78, 0x46, 0x1e, 0x39, - 0x87, 0x97, 0x95, 0x6f, 0x0a, 0x39, 0x28, 0x71, 0x79, 0xfc, 0x22, 0xfa, 0xc1, 0xd3, 0x05, 0x28, - 0x0e, 0x77, 0xce, 0x5f, 0x34, 0xcc, 0xe7, 0xec, 0x93, 0xb8, 0xd0, 0x96, 0x5c, 0xac, 0xea, 0xaf, - 0xd5, 0x87, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x04, 0x75, 0xfe, 0xf6, 0xec, 0x06, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_77ab6a9fe292f32a) } + +var fileDescriptor_relay_77ab6a9fe292f32a = []byte{ + // 668 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x4f, 0xdb, 0x4a, + 0x10, 0x97, 0x31, 0x7f, 0x07, 0x78, 0x0f, 0x56, 0xbc, 0x87, 0xf1, 0x21, 0xb8, 0x3e, 0x54, 0x51, + 0xd5, 0x26, 0x52, 0xda, 0x5b, 0x6f, 0x10, 0x81, 0x22, 0x11, 0x05, 0x6d, 0x5a, 0xb5, 0xe2, 0x12, + 0x2d, 0xc9, 0x62, 0x2c, 0x9c, 0x78, 0xd9, 0xb1, 0x41, 0x7c, 0x82, 0xde, 0x7a, 0xea, 0xb9, 0x87, + 0x7e, 0x89, 0x7e, 0xbd, 0x6a, 0xff, 0xc4, 0xb5, 0x21, 0x81, 0x72, 0xe8, 0x25, 0xca, 0xcc, 0xce, + 0xce, 0xfc, 0xfe, 0xec, 0xae, 0x61, 0x5b, 0xf2, 0x84, 0xdd, 0x35, 0xf5, 0x6f, 0x43, 0xc8, 0x34, + 0x4b, 0xc9, 0x92, 0x0e, 0xfc, 0x17, 0x3d, 0xc1, 0x27, 0x83, 0x4e, 0xb7, 0x29, 0xae, 0xa2, 0xa6, + 0x5e, 0x69, 0xe2, 0xe8, 0x6a, 0x70, 0x8b, 0xcd, 0x5b, 0x34, 0x95, 0xe1, 0x57, 0x07, 0xb6, 0x7a, + 0x93, 0x24, 0x9e, 0xf0, 0xd3, 0x1c, 0x2f, 0xbb, 0x18, 0x51, 0x7e, 0x4d, 0x02, 0x58, 0xef, 0x09, + 0x2e, 0x59, 0x16, 0xa7, 0x93, 0x4e, 0xdb, 0x73, 0x02, 0xa7, 0xbe, 0x46, 0xcb, 0x29, 0xf2, 0x0e, + 0x56, 0xc6, 0x18, 0xb5, 0x59, 0xc6, 0xbc, 0x85, 0xc0, 0xa9, 0xaf, 0xb7, 0xfc, 0x06, 0x72, 0x79, + 0xc3, 0xe5, 0x80, 0x89, 0x78, 0x20, 0x98, 0x64, 0x63, 0x6c, 0x74, 0x4d, 0x05, 0x9d, 0x96, 0x92, + 0x10, 0x36, 0x44, 0x8e, 0x97, 0x1f, 0xd2, 0x8f, 0xc8, 0x65, 0xa7, 0xed, 0xb9, 0xba, 0x71, 0x25, + 0x17, 0x1e, 0xc3, 0xf6, 0x3d, 0x3c, 0x28, 0x48, 0x0b, 0x16, 0x25, 0x47, 0xe1, 0x39, 0x81, 0x5b, + 0x5f, 0x6f, 0xd5, 0x1a, 0x86, 0x6b, 0x3f, 0x9e, 0x44, 0x09, 0xef, 0x62, 0x64, 0x36, 0x9f, 0x26, + 0x2c, 0xbb, 0x48, 0xe5, 0x98, 0xea, 0xda, 0xf0, 0x8b, 0x03, 0x7b, 0xaa, 0x82, 0x27, 0x45, 0x05, + 0xe5, 0x98, 0x27, 0xd9, 0x49, 0x8c, 0x19, 0xf9, 0x1f, 0x96, 0x73, 0x03, 0xc2, 0xb0, 0xb3, 0x51, + 0x31, 0x69, 0xe1, 0xcf, 0x27, 0x91, 0x1a, 0x40, 0x5a, 0x40, 0xd6, 0xa4, 0x56, 0x69, 0x29, 0x13, + 0x7e, 0x77, 0xc0, 0x33, 0x9c, 0x0e, 0x58, 0x36, 0xbc, 0x54, 0xb9, 0xde, 0x84, 0xff, 0x65, 0xad, + 0x5f, 0xc1, 0x56, 0x59, 0x57, 0x45, 0xda, 0x73, 0x03, 0xb7, 0xbe, 0x46, 0x1f, 0xe4, 0xc3, 0x18, + 0xf6, 0xe6, 0xe0, 0x43, 0x41, 0x4e, 0x60, 0x0b, 0x35, 0x7d, 0x95, 0x37, 0x0a, 0x5a, 0x1f, 0x82, + 0x92, 0x3a, 0x33, 0x55, 0xa6, 0x0f, 0x76, 0x86, 0x77, 0xb0, 0x3b, 0x47, 0x4c, 0x25, 0xa3, 0x29, + 0x3a, 0x4c, 0x47, 0x5c, 0x0b, 0xe1, 0xd2, 0x52, 0x46, 0x59, 0x46, 0xf9, 0xf0, 0xa6, 0xd3, 0xd6, + 0x32, 0xac, 0x51, 0x1b, 0x91, 0x97, 0xf0, 0x8f, 0xfa, 0xa7, 0xfa, 0x1c, 0xa5, 0x72, 0x6c, 0xcf, + 0xd5, 0x12, 0xbd, 0x97, 0x0d, 0x6f, 0x61, 0xf7, 0x98, 0x67, 0x6a, 0x24, 0x1a, 0xb6, 0xfd, 0x8c, + 0x65, 0x39, 0x2a, 0x13, 0x6a, 0x00, 0xf9, 0x6f, 0x99, 0x1c, 0x2d, 0x53, 0x29, 0xa3, 0x4c, 0x4a, + 0x4b, 0x26, 0x99, 0xf9, 0xe5, 0x14, 0xf1, 0x61, 0x35, 0x15, 0x95, 0x63, 0x5d, 0xc4, 0xe1, 0xcf, + 0x45, 0xf0, 0x66, 0x4f, 0x46, 0x41, 0x3c, 0x58, 0xe1, 0x52, 0x16, 0x94, 0x97, 0xe8, 0x34, 0x54, + 0x7c, 0xb9, 0x94, 0x5d, 0x8c, 0xa6, 0x7c, 0x4d, 0x44, 0xfa, 0xb0, 0x89, 0xf9, 0x70, 0xc8, 0x11, + 0xad, 0x1b, 0xae, 0x76, 0xe3, 0x8d, 0x75, 0x63, 0xde, 0xa4, 0x46, 0xbf, 0xbc, 0x89, 0x56, 0x7b, + 0x90, 0x53, 0xd8, 0xb8, 0x60, 0x71, 0xc2, 0x47, 0xb6, 0xe7, 0xa2, 0xee, 0xf9, 0xfa, 0xa9, 0x9e, + 0x47, 0x7a, 0x4f, 0x9b, 0x67, 0x2c, 0x4e, 0x68, 0xa5, 0x83, 0x7f, 0x08, 0x9b, 0x76, 0xa2, 0x59, + 0x56, 0x12, 0x09, 0xeb, 0xb5, 0x3d, 0xe6, 0x45, 0xac, 0xb8, 0xa2, 0xee, 0x3a, 0xe5, 0x6a, 0x22, + 0xff, 0x33, 0x6c, 0x94, 0x47, 0x94, 0xae, 0xad, 0x5b, 0xb9, 0xb6, 0xcf, 0x56, 0xd1, 0xff, 0xe1, + 0x14, 0xf8, 0xac, 0x04, 0xf3, 0x9e, 0x84, 0x39, 0xd8, 0x08, 0x83, 0x9d, 0x91, 0x46, 0x35, 0x3d, + 0xc1, 0x46, 0x97, 0x67, 0xda, 0x61, 0xb5, 0x9b, 0xd9, 0xaa, 0xf5, 0x6d, 0x61, 0x7a, 0x33, 0xbb, + 0x1c, 0x91, 0x45, 0x9c, 0xaa, 0x9e, 0x7d, 0x2e, 0x6f, 0xe2, 0x21, 0x27, 0x07, 0xb0, 0x59, 0x79, + 0x2a, 0xc9, 0xae, 0x9d, 0x79, 0xff, 0x41, 0xf7, 0xbd, 0xd9, 0x0b, 0x28, 0xc8, 0x27, 0xd8, 0x99, + 0x85, 0x90, 0xd4, 0x1e, 0x85, 0x7f, 0xed, 0xef, 0x3f, 0x41, 0x8f, 0x9c, 0xc1, 0x7f, 0x33, 0xdf, + 0x14, 0xb2, 0x5f, 0xc1, 0xf2, 0xf0, 0x45, 0xf4, 0x83, 0xc7, 0x0b, 0x50, 0x1c, 0x6c, 0x9f, 0xfd, + 0xdb, 0x30, 0xdf, 0xbb, 0xf7, 0xe2, 0x5c, 0x4b, 0x72, 0xbe, 0xac, 0x3f, 0x67, 0x6f, 0x7f, 0x05, + 0x00, 0x00, 0xff, 0xff, 0x30, 0xa9, 0x4c, 0xde, 0x0d, 0x07, 0x00, 0x00, } diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index b02edfa2c..cee15887c 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -14,6 +14,7 @@ repeated SingleMsgToUserPlatform resp = 1; message SingelMsgToUserResultList{ string userID =1; repeated SingleMsgToUserPlatform resp = 2; + bool onlinePush = 3; } message OnlineBatchPushOneMsgReq{