ws and push update

pull/236/head
Gordon 3 years ago
parent 1aacd3cb23
commit 0a260a67d5

@ -159,11 +159,16 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online
} }
for _, v := range req.PushToUserIDList { for _, v := range req.PushToUserIDList {
var resp []*pbRelay.SingleMsgToUserPlatform var resp []*pbRelay.SingleMsgToUserPlatform
tempT := &pbRelay.SingelMsgToUserResultList{
UserID: v,
}
userConnMap := ws.getUserAllCons(v) userConnMap := ws.getUserAllCons(v)
for platform, userConn := range userConnMap { for platform, userConn := range userConnMap {
if userConn != nil { if userConn != nil {
resultCode := sendMsgBatchToUser(userConn, replyBytes.Bytes(), req, platform, v) 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{ temp := &pbRelay.SingleMsgToUserPlatform{
ResultCode: resultCode, ResultCode: resultCode,
RecvID: v, RecvID: v,
@ -174,31 +179,7 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online
} }
} }
//for _, x := range r.platformList { tempT.Resp = resp
// 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,
}
singleUserResult = append(singleUserResult, tempT) singleUserResult = append(singleUserResult, tempT)
} }

@ -36,7 +36,7 @@ type AtContent struct {
var grpcCons []*grpc.ClientConn var grpcCons []*grpc.ClientConn
func MsgToUser(pushMsg *pbPush.PushMsgReq) { func MsgToUser(pushMsg *pbPush.PushMsgReq) {
var wsResult []*pbRelay.SingleMsgToUserPlatform var wsResult []*pbRelay.SingelMsgToUserResultList
isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush)
log.Debug(pushMsg.OperationID, "Get msg from msg_transfer And push msg", pushMsg.String()) log.Debug(pushMsg.OperationID, "Get msg from msg_transfer And push msg", pushMsg.String())
if len(grpcCons) == 0 { 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()) log.Debug("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String())
for _, v := range grpcCons { for _, v := range grpcCons {
msgClient := pbRelay.NewOnlineMessageRelayServiceClient(v) 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 { if err != nil {
log.NewError("push data to client rpc err", pushMsg.OperationID, "err", err) log.NewError("push data to client rpc err", pushMsg.OperationID, "err", err)
continue continue
} }
if reply != nil && reply.Resp != nil { if reply != nil && reply.SinglePushResult != nil {
wsResult = append(wsResult, reply.Resp...) wsResult = append(wsResult, reply.SinglePushResult...)
} }
} }
log.NewInfo(pushMsg.OperationID, "push_result", wsResult, "sendData", pushMsg.MsgData) log.NewInfo(pushMsg.OperationID, "push_result", wsResult, "sendData", pushMsg.MsgData)
successCount++ successCount++
if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID {
for _, v := range wsResult { for _, v := range wsResult {
if v.ResultCode == 0 { if v.OnlinePush {
if utils.IsContainInt32(v.RecvPlatFormID, pushTerminal) { return
break
}
continue
} }
if utils.IsContainInt32(v.RecvPlatFormID, pushTerminal) { }
//Use offline push messaging //Use offline push messaging
var UIDList []string var UIDList []string
UIDList = append(UIDList, v.RecvID) UIDList = append(UIDList, pushMsg.PushToUserID)
customContent := OpenIMContent{ customContent := OpenIMContent{
SessionType: int(pushMsg.MsgData.SessionType), SessionType: int(pushMsg.MsgData.SessionType),
From: pushMsg.MsgData.SendID, From: pushMsg.MsgData.SendID,
To: pushMsg.MsgData.RecvID, To: pushMsg.MsgData.RecvID,
Seq: pushMsg.MsgData.Seq, Seq: pushMsg.MsgData.Seq,
} }
bCustomContent, _ := json.Marshal(customContent) bCustomContent, _ := json.Marshal(customContent)
jsonCustomContent := string(bCustomContent) jsonCustomContent := string(bCustomContent)
var content string var content string
if pushMsg.MsgData.OfflinePushInfo != nil { if pushMsg.MsgData.OfflinePushInfo != nil {
content = pushMsg.MsgData.OfflinePushInfo.Title 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 { } else {
switch pushMsg.MsgData.ContentType { content = constant.ContentType2PushContent[constant.GroupMsg]
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)
} }
if callbackResp.ActionCode != constant.ActionAllow { default:
log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "offlinePush stop") content = constant.ContentType2PushContent[constant.Common]
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
} }
}
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) { func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) {
@ -155,7 +148,7 @@ func MsgToSuperGroupUser(pushMsg *pbPush.PushMsgReq) {
// wsResult = append(wsResult, reply.SinglePushResult...) // 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++ //successCount++
//if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { //if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID {
// for _, v := range wsResult { // for _, v := range wsResult {

@ -37,7 +37,7 @@ func (m *OnlinePushMsgReq) Reset() { *m = OnlinePushMsgReq{} }
func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) } func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) }
func (*OnlinePushMsgReq) ProtoMessage() {} func (*OnlinePushMsgReq) ProtoMessage() {}
func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) { 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 { func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b) 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 (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) }
func (*OnlinePushMsgResp) ProtoMessage() {} func (*OnlinePushMsgResp) ProtoMessage() {}
func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) { 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 { func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b) return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b)
@ -119,6 +119,7 @@ func (m *OnlinePushMsgResp) GetResp() []*SingleMsgToUserPlatform {
type SingelMsgToUserResultList struct { type SingelMsgToUserResultList struct {
UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
Resp []*SingleMsgToUserPlatform `protobuf:"bytes,2,rep,name=resp" json:"resp,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_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `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 (m *SingelMsgToUserResultList) String() string { return proto.CompactTextString(m) }
func (*SingelMsgToUserResultList) ProtoMessage() {} func (*SingelMsgToUserResultList) ProtoMessage() {}
func (*SingelMsgToUserResultList) Descriptor() ([]byte, []int) { 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 { func (m *SingelMsgToUserResultList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SingelMsgToUserResultList.Unmarshal(m, b) return xxx_messageInfo_SingelMsgToUserResultList.Unmarshal(m, b)
@ -162,6 +163,13 @@ func (m *SingelMsgToUserResultList) GetResp() []*SingleMsgToUserPlatform {
return nil return nil
} }
func (m *SingelMsgToUserResultList) GetOnlinePush() bool {
if m != nil {
return m.OnlinePush
}
return false
}
type OnlineBatchPushOneMsgReq struct { type OnlineBatchPushOneMsgReq struct {
OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"`
MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,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 (m *OnlineBatchPushOneMsgReq) String() string { return proto.CompactTextString(m) }
func (*OnlineBatchPushOneMsgReq) ProtoMessage() {} func (*OnlineBatchPushOneMsgReq) ProtoMessage() {}
func (*OnlineBatchPushOneMsgReq) Descriptor() ([]byte, []int) { 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 { func (m *OnlineBatchPushOneMsgReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OnlineBatchPushOneMsgReq.Unmarshal(m, b) 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 (m *OnlineBatchPushOneMsgResp) String() string { return proto.CompactTextString(m) }
func (*OnlineBatchPushOneMsgResp) ProtoMessage() {} func (*OnlineBatchPushOneMsgResp) ProtoMessage() {}
func (*OnlineBatchPushOneMsgResp) Descriptor() ([]byte, []int) { 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 { func (m *OnlineBatchPushOneMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OnlineBatchPushOneMsgResp.Unmarshal(m, b) 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 (m *SingleMsgToUserPlatform) String() string { return proto.CompactTextString(m) }
func (*SingleMsgToUserPlatform) ProtoMessage() {} func (*SingleMsgToUserPlatform) ProtoMessage() {}
func (*SingleMsgToUserPlatform) Descriptor() ([]byte, []int) { 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 { func (m *SingleMsgToUserPlatform) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SingleMsgToUserPlatform.Unmarshal(m, b) 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 (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) }
func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) ProtoMessage() {}
func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { 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 { func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) 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 (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) }
func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) ProtoMessage() {}
func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { 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 { func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) 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 (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) }
func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {}
func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { 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 { func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) 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 (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) }
func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {}
func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { 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 { func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) 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 (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) }
func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {}
func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { 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 { func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b)
@ -734,49 +742,50 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{
Metadata: "relay/relay.proto", Metadata: "relay/relay.proto",
} }
func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_72b82cfd7861903a) } func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_77ab6a9fe292f32a) }
var fileDescriptor_relay_72b82cfd7861903a = []byte{ var fileDescriptor_relay_77ab6a9fe292f32a = []byte{
// 656 bytes of a gzipped FileDescriptorProto // 668 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x4f, 0xdb, 0x4e, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4f, 0x4f, 0xdb, 0x4a,
0x10, 0x95, 0x31, 0x7f, 0x7e, 0x0c, 0xf0, 0x2b, 0xac, 0x68, 0x31, 0x3e, 0x04, 0xd7, 0x87, 0x2a, 0x10, 0x97, 0x31, 0x7f, 0x07, 0x78, 0x0f, 0x56, 0xbc, 0x87, 0xf1, 0x21, 0xb8, 0x3e, 0x54, 0x51,
0xaa, 0xda, 0x44, 0x4a, 0x7b, 0xeb, 0x0d, 0x22, 0x50, 0x24, 0xa2, 0xa0, 0x4d, 0xab, 0x56, 0x5c, 0xd5, 0x26, 0x52, 0xda, 0x5b, 0x6f, 0x10, 0x81, 0x22, 0x11, 0x05, 0x6d, 0x5a, 0xb5, 0xe2, 0x12,
0xa2, 0x25, 0x59, 0x8c, 0x85, 0x13, 0x2f, 0x3b, 0x36, 0x88, 0x2f, 0xd1, 0x53, 0xcf, 0x3d, 0xf4, 0x2d, 0xc9, 0x62, 0x2c, 0x9c, 0x78, 0xd9, 0xb1, 0x41, 0x7c, 0x82, 0xde, 0x7a, 0xea, 0xb9, 0x87,
0x4b, 0xf4, 0xeb, 0x55, 0xfb, 0x27, 0xa9, 0x0d, 0x0e, 0x28, 0x87, 0x5e, 0xa2, 0xcc, 0xec, 0xec, 0x7e, 0x89, 0x7e, 0xbd, 0x6a, 0xff, 0xc4, 0xb5, 0x21, 0x81, 0x72, 0xe8, 0x25, 0xca, 0xcc, 0xce,
0x9b, 0xf7, 0xde, 0xec, 0xae, 0x61, 0x47, 0xf2, 0x84, 0xdd, 0x37, 0xf5, 0x6f, 0x43, 0xc8, 0x34, 0xce, 0xfc, 0xfe, 0xec, 0xae, 0x61, 0x5b, 0xf2, 0x84, 0xdd, 0x35, 0xf5, 0x6f, 0x43, 0xc8, 0x34,
0x4b, 0xc9, 0x8a, 0x0e, 0xfc, 0xd7, 0x3d, 0xc1, 0x27, 0x83, 0x4e, 0xb7, 0x29, 0xae, 0xa3, 0xa6, 0x4b, 0xc9, 0x92, 0x0e, 0xfc, 0x17, 0x3d, 0xc1, 0x27, 0x83, 0x4e, 0xb7, 0x29, 0xae, 0xa2, 0xa6,
0x5e, 0x69, 0xe2, 0xe8, 0x7a, 0x70, 0x87, 0xcd, 0x3b, 0x34, 0x95, 0xe1, 0x77, 0x07, 0xb6, 0x7b, 0x5e, 0x69, 0xe2, 0xe8, 0x6a, 0x70, 0x8b, 0xcd, 0x5b, 0x34, 0x95, 0xe1, 0x57, 0x07, 0xb6, 0x7a,
0x93, 0x24, 0x9e, 0xf0, 0xb3, 0x1c, 0xaf, 0xba, 0x18, 0x51, 0x7e, 0x43, 0x02, 0xd8, 0xe8, 0x09, 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, 0x4e, 0x8b, 0x29, 0xf2, 0x11, 0x2e, 0x59, 0x16, 0xa7, 0x93, 0x4e, 0xdb, 0x73, 0x02, 0xa7, 0xbe, 0x46, 0xcb, 0x29, 0xf2, 0x0e,
0xd6, 0xc6, 0x18, 0xb5, 0x59, 0xc6, 0xbc, 0xa5, 0xc0, 0xa9, 0x6f, 0xb4, 0xfc, 0x06, 0x72, 0x79, 0x56, 0xc6, 0x18, 0xb5, 0x59, 0xc6, 0xbc, 0x85, 0xc0, 0xa9, 0xaf, 0xb7, 0xfc, 0x06, 0x72, 0x79,
0xcb, 0xe5, 0x80, 0x89, 0x78, 0x20, 0x98, 0x64, 0x63, 0x6c, 0x74, 0x4d, 0x05, 0x9d, 0x96, 0x92, 0xc3, 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, 0x10, 0x36, 0x44, 0x8e, 0x97, 0x1f, 0xd2, 0x8f, 0xc8, 0x65, 0xa7, 0xed, 0xb9, 0xba, 0x71, 0x25,
0x0b, 0x4f, 0x60, 0xe7, 0x01, 0x1f, 0x14, 0xa4, 0x05, 0xcb, 0x92, 0xa3, 0xf0, 0x9c, 0xc0, 0xad, 0x17, 0x1e, 0xc3, 0xf6, 0x3d, 0x3c, 0x28, 0x48, 0x0b, 0x16, 0x25, 0x47, 0xe1, 0x39, 0x81, 0x5b,
0x6f, 0xb4, 0x6a, 0x0d, 0xa3, 0xb5, 0x1f, 0x4f, 0xa2, 0x84, 0x77, 0x31, 0x32, 0x9b, 0xcf, 0x12, 0x5f, 0x6f, 0xd5, 0x1a, 0x86, 0x6b, 0x3f, 0x9e, 0x44, 0x09, 0xef, 0x62, 0x64, 0x36, 0x9f, 0x26,
0x96, 0x5d, 0xa6, 0x72, 0x4c, 0x75, 0x6d, 0x18, 0xc1, 0xbe, 0x2a, 0xe0, 0xc9, 0xac, 0x80, 0x72, 0x2c, 0xbb, 0x48, 0xe5, 0x98, 0xea, 0xda, 0xf0, 0x8b, 0x03, 0x7b, 0xaa, 0x82, 0x27, 0x45, 0x05,
0xcc, 0x93, 0xec, 0x34, 0xc6, 0x8c, 0xbc, 0x82, 0xd5, 0xdc, 0x70, 0x30, 0xe2, 0x6c, 0x34, 0x6b, 0xe5, 0x98, 0x27, 0xd9, 0x49, 0x8c, 0x19, 0xf9, 0x1f, 0x96, 0x73, 0x03, 0xc2, 0xb0, 0xb3, 0x51,
0xb4, 0xb4, 0x40, 0xa3, 0x9f, 0x0e, 0x78, 0x86, 0xf2, 0x21, 0xcb, 0x86, 0x57, 0x8a, 0x77, 0x6f, 0x31, 0x69, 0xe1, 0xcf, 0x27, 0x91, 0x1a, 0x40, 0x5a, 0x40, 0xd6, 0xa4, 0x56, 0x69, 0x29, 0x13,
0xc2, 0xff, 0xb1, 0x95, 0x6f, 0x61, 0xbb, 0x68, 0x9b, 0x12, 0xe5, 0xb9, 0x81, 0x5b, 0x5f, 0xa7, 0x7e, 0x77, 0xc0, 0x33, 0x9c, 0x0e, 0x58, 0x36, 0xbc, 0x54, 0xb9, 0xde, 0x84, 0xff, 0x65, 0xad,
0x8f, 0xf2, 0x61, 0x0c, 0xfb, 0x73, 0xf8, 0xa1, 0x20, 0xa7, 0xb0, 0x8d, 0x5a, 0x9e, 0xca, 0x1b, 0x5f, 0xc1, 0x56, 0x59, 0x57, 0x45, 0xda, 0x73, 0x03, 0xb7, 0xbe, 0x46, 0x1f, 0xe4, 0xc3, 0x18,
0x87, 0xac, 0xcd, 0x41, 0x41, 0x7d, 0xa5, 0x8b, 0xf4, 0xd1, 0xce, 0xf0, 0x1e, 0xf6, 0xe6, 0x98, 0xf6, 0xe6, 0xe0, 0x43, 0x41, 0x4e, 0x60, 0x0b, 0x35, 0x7d, 0x95, 0x37, 0x0a, 0x5a, 0x1f, 0x82,
0x45, 0x6a, 0x00, 0xa6, 0xe8, 0x28, 0x1d, 0x71, 0x6d, 0x84, 0x4b, 0x0b, 0x19, 0x35, 0x12, 0xca, 0x92, 0x3a, 0x33, 0x55, 0xa6, 0x0f, 0x76, 0x86, 0x77, 0xb0, 0x3b, 0x47, 0x4c, 0x25, 0xa3, 0x29,
0x87, 0xb7, 0x9d, 0xb6, 0xb6, 0x61, 0x9d, 0xda, 0x88, 0xbc, 0x81, 0xff, 0xd5, 0x3f, 0x85, 0x73, 0x3a, 0x4c, 0x47, 0x5c, 0x0b, 0xe1, 0xd2, 0x52, 0x46, 0x59, 0x46, 0xf9, 0xf0, 0xa6, 0xd3, 0xd6,
0x9c, 0xca, 0xb1, 0x3d, 0x36, 0x2b, 0xf4, 0x41, 0x36, 0xbc, 0x83, 0xbd, 0x13, 0x9e, 0xa9, 0x96, 0x32, 0xac, 0x51, 0x1b, 0x91, 0x97, 0xf0, 0x8f, 0xfa, 0xa7, 0xfa, 0x1c, 0xa5, 0x72, 0x6c, 0xcf,
0x68, 0xd4, 0xf6, 0x33, 0x96, 0xe5, 0xa8, 0x86, 0x50, 0x03, 0xc8, 0xff, 0xda, 0xe4, 0x68, 0x9b, 0xd5, 0x12, 0xbd, 0x97, 0x0d, 0x6f, 0x61, 0xf7, 0x98, 0x67, 0x6a, 0x24, 0x1a, 0xb6, 0xfd, 0x8c,
0x0a, 0x19, 0x35, 0xa4, 0xb4, 0x30, 0x24, 0xd3, 0xbf, 0x98, 0x22, 0x3e, 0xfc, 0x97, 0x8a, 0xd2, 0x65, 0x39, 0x2a, 0x13, 0x6a, 0x00, 0xf9, 0x6f, 0x99, 0x1c, 0x2d, 0x53, 0x29, 0xa3, 0x4c, 0x4a,
0xa9, 0x9d, 0xc5, 0xe1, 0xef, 0x65, 0xf0, 0xaa, 0x3b, 0xa3, 0x20, 0x1e, 0xac, 0x71, 0x29, 0x67, 0x4b, 0x26, 0x99, 0xf9, 0xe5, 0x14, 0xf1, 0x61, 0x35, 0x15, 0x95, 0x63, 0x5d, 0xc4, 0xe1, 0xcf,
0x92, 0x57, 0xe8, 0x34, 0x54, 0x7a, 0xb9, 0x94, 0x5d, 0x8c, 0xa6, 0x7a, 0x4d, 0x44, 0xfa, 0xb0, 0x45, 0xf0, 0x66, 0x4f, 0x46, 0x41, 0x3c, 0x58, 0xe1, 0x52, 0x16, 0x94, 0x97, 0xe8, 0x34, 0x54,
0x85, 0xf9, 0x70, 0xc8, 0x11, 0xed, 0x34, 0x5c, 0x3d, 0x8d, 0xf7, 0x76, 0x1a, 0xf3, 0x3a, 0x35, 0x7c, 0xb9, 0x94, 0x5d, 0x8c, 0xa6, 0x7c, 0x4d, 0x44, 0xfa, 0xb0, 0x89, 0xf9, 0x70, 0xc8, 0x11,
0xfa, 0xc5, 0x4d, 0xb4, 0x8c, 0x41, 0xce, 0x60, 0xf3, 0x92, 0xc5, 0x09, 0x1f, 0x59, 0xcc, 0x65, 0xad, 0x1b, 0xae, 0x76, 0xe3, 0x8d, 0x75, 0x63, 0xde, 0xa4, 0x46, 0xbf, 0xbc, 0x89, 0x56, 0x7b,
0x8d, 0xf9, 0xee, 0x39, 0xcc, 0x63, 0xbd, 0xa7, 0xcd, 0x33, 0x16, 0x27, 0xb4, 0x84, 0xe0, 0x1f, 0x90, 0x53, 0xd8, 0xb8, 0x60, 0x71, 0xc2, 0x47, 0xb6, 0xe7, 0xa2, 0xee, 0xf9, 0xfa, 0xa9, 0x9e,
0xc1, 0x96, 0xed, 0x68, 0x96, 0x95, 0x45, 0xc2, 0xce, 0xda, 0x1e, 0xf3, 0x59, 0xac, 0xb4, 0xa2, 0x47, 0x7a, 0x4f, 0x9b, 0x67, 0x2c, 0x4e, 0x68, 0xa5, 0x83, 0x7f, 0x08, 0x9b, 0x76, 0xa2, 0x59,
0x46, 0x9d, 0x6a, 0x35, 0x91, 0xff, 0x0d, 0x36, 0x8b, 0x2d, 0x0a, 0xd7, 0xd2, 0x2d, 0x5d, 0xcb, 0x56, 0x12, 0x09, 0xeb, 0xb5, 0x3d, 0xe6, 0x45, 0xac, 0xb8, 0xa2, 0xee, 0x3a, 0xe5, 0x6a, 0x22,
0x85, 0x5d, 0xf4, 0x7f, 0x39, 0x33, 0x7e, 0xd6, 0x82, 0x79, 0x57, 0x7e, 0x0e, 0x37, 0xc2, 0x60, 0xff, 0x33, 0x6c, 0x94, 0x47, 0x94, 0xae, 0xad, 0x5b, 0xb9, 0xb6, 0xcf, 0x56, 0xd1, 0xff, 0xe1,
0x77, 0xa4, 0x59, 0x4d, 0x4f, 0xb0, 0xf1, 0x65, 0xc1, 0x71, 0x58, 0xef, 0x2a, 0xa1, 0x5a, 0x3f, 0x14, 0xf8, 0xac, 0x04, 0xf3, 0x9e, 0x84, 0x39, 0xd8, 0x08, 0x83, 0x9d, 0x91, 0x46, 0x35, 0x3d,
0x96, 0xa6, 0x37, 0xb3, 0xcb, 0x11, 0x59, 0xc4, 0xa9, 0xc2, 0xec, 0x73, 0x79, 0x1b, 0x0f, 0x39, 0xc1, 0x46, 0x97, 0x67, 0xda, 0x61, 0xb5, 0x9b, 0xd9, 0xaa, 0xf5, 0x6d, 0x61, 0x7a, 0x33, 0xbb,
0x39, 0x84, 0xad, 0xd2, 0x4b, 0x48, 0xf6, 0x6c, 0xcf, 0x87, 0xef, 0xb5, 0xef, 0x55, 0x2f, 0xa0, 0x1c, 0x91, 0x45, 0x9c, 0xaa, 0x9e, 0x7d, 0x2e, 0x6f, 0xe2, 0x21, 0x27, 0x07, 0xb0, 0x59, 0x79,
0x20, 0x5f, 0x61, 0xb7, 0x8a, 0x21, 0xa9, 0x3d, 0x49, 0xff, 0xc6, 0x3f, 0x78, 0x46, 0x1e, 0x39, 0x2a, 0xc9, 0xae, 0x9d, 0x79, 0xff, 0x41, 0xf7, 0xbd, 0xd9, 0x0b, 0x28, 0xc8, 0x27, 0xd8, 0x99,
0x87, 0x97, 0x95, 0x6f, 0x0a, 0x39, 0x28, 0x71, 0x79, 0xfc, 0x22, 0xfa, 0xc1, 0xd3, 0x05, 0x28, 0x85, 0x90, 0xd4, 0x1e, 0x85, 0x7f, 0xed, 0xef, 0x3f, 0x41, 0x8f, 0x9c, 0xc1, 0x7f, 0x33, 0xdf,
0x0e, 0x77, 0xce, 0x5f, 0x34, 0xcc, 0xe7, 0xec, 0x93, 0xb8, 0xd0, 0x96, 0x5c, 0xac, 0xea, 0xaf, 0x14, 0xb2, 0x5f, 0xc1, 0xf2, 0xf0, 0x45, 0xf4, 0x83, 0xc7, 0x0b, 0x50, 0x1c, 0x6c, 0x9f, 0xfd,
0xd5, 0x87, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x04, 0x75, 0xfe, 0xf6, 0xec, 0x06, 0x00, 0x00, 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,
} }

@ -14,6 +14,7 @@ repeated SingleMsgToUserPlatform resp = 1;
message SingelMsgToUserResultList{ message SingelMsgToUserResultList{
string userID =1; string userID =1;
repeated SingleMsgToUserPlatform resp = 2; repeated SingleMsgToUserPlatform resp = 2;
bool onlinePush = 3;
} }
message OnlineBatchPushOneMsgReq{ message OnlineBatchPushOneMsgReq{

Loading…
Cancel
Save