From 75414a52f804984c9c30b98b84a4a8d56e7777f5 Mon Sep 17 00:00:00 2001 From: AndrewZuo01 Date: Sat, 6 Jan 2024 12:22:16 +0800 Subject: [PATCH] fix push online and offline user, but why typing trigger callback push? --- internal/push/push_to_client.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/push/push_to_client.go b/internal/push/push_to_client.go index 12b78ea2d..b67073795 100644 --- a/internal/push/push_to_client.go +++ b/internal/push/push_to_client.go @@ -101,10 +101,6 @@ func (p *Pusher) DeleteMemberAndSetConversationSeq(ctx context.Context, groupID func (p *Pusher) Push2User(ctx context.Context, userIDs []string, msg *sdkws.MsgData) error { log.ZDebug(ctx, "Get msg from msg_transfer And push msg", "userIDs", userIDs, "msg", msg.String()) - // callback - if err := callbackOnlinePush(ctx, userIDs, msg); err != nil { - return err - } // push wsResults, err := p.GetConnsAndOnlinePush(ctx, msg, userIDs) @@ -120,7 +116,11 @@ func (p *Pusher) Push2User(ctx context.Context, userIDs []string, msg *sdkws.Msg } for _, v := range wsResults { - if msg.SendID != v.UserID && (!v.OnlinePush) { + if msg.SendID == v.UserID { + continue // Skip if sender and receiver are the same + } + + if !v.OnlinePush { if err = callbackOfflinePush(ctx, userIDs, msg, &[]string{}); err != nil { return err } @@ -129,7 +129,12 @@ func (p *Pusher) Push2User(ctx context.Context, userIDs []string, msg *sdkws.Msg if err != nil { return err } + } else { + if err := callbackOnlinePush(ctx, userIDs, msg); err != nil { + return err + } } + } return nil }