diff --git a/deployments/templates/openim.yaml b/deployments/templates/openim.yaml index aab6e746c..c0e552c24 100644 --- a/deployments/templates/openim.yaml +++ b/deployments/templates/openim.yaml @@ -312,122 +312,127 @@ iosPush: # Timeout in seconds # Whether to continue execution if callback fails callback: - url: "http://43.154.157.177:18889/sdkName" + url: beforeSendSingleMsg: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} afterSendSingleMsg: - enable: false - timeout: 5 + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeSendGroupMsg: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} afterSendGroupMsg: - enable: false - timeout: 5 + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} msgModify: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} userOnline: - enable: false - timeout: 5 + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} userOffline: - enable: false - timeout: 5 + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} userKickOff: - enable: false - timeout: 5 + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} offlinePush: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} onlinePush: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} superGroupOnlinePush: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeAddFriend: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeUpdateUserInfo: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeCreateGroup: - enable: true - timeout: 5 - failedContinue: false + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} afterCreateGroup: - enable: true - timeout: 5 - failedContinue: false + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeMemberJoinGroup: - enable: false - timeout: 5 - failedContinue: false + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeSetGroupMemberInfo: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} setMessageReactionExtensions: - enable: false - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} quitGroup: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} killGroupMember: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} dismissGroup: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} joinGroup: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} groupMsgRead: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} singleMsgRead: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} updateUserInfo: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeUserRegister: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} afterUserRegister: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} transferGroupOwner: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} beforeSetFriendRemark: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} afterSetFriendRemark: - enable: true - timeout: 5 - failedContinue: true + enable: ${CALLBACK_ENABLE} + timeout: ${CALLBACK_TIMEOUT} + failedContinue: ${CALLBACK_FAILED_CONTINUE} ###################### Prometheus ###################### # Prometheus configuration for various services diff --git a/docs/contrib/environment.md b/docs/contrib/environment.md index 221efdf03..8e0cf2572 100644 --- a/docs/contrib/environment.md +++ b/docs/contrib/environment.md @@ -466,7 +466,7 @@ This section involves configuring the log settings, including storage location, This section involves setting up additional configuration variables for Websocket, Push Notifications, and Chat. | Parameter | Example Value | Description | -| ----------------------- | ----------------- | ---------------------------------- | +|-------------------------|-------------------|------------------------------------| | WEBSOCKET_MAX_CONN_NUM | "100000" | Maximum Websocket connections | | WEBSOCKET_MAX_MSG_LEN | "4096" | Maximum Websocket message length | | WEBSOCKET_TIMEOUT | "10" | Websocket timeout | @@ -500,9 +500,9 @@ This section involves setting up additional configuration variables for Websocke | TOKEN_EXPIRE | "90" | Token Expiry Time | | FRIEND_VERIFY | "false" | Friend Verification Enable | | IOS_PUSH_SOUND | "xxx" | iOS | - - - +| CALLBACK_ENABLE | "true" | Enable callback | | | | +| CALLBACK_TIMEOUT | "5" | Maximum timeout for callback call | +| CALLBACK_FAILED_CONTINUE| "true" | fails to continue to the next step | ### 2.20. Prometheus Configuration This section involves configuring Prometheus, including enabling/disabling it and setting up ports for various services. diff --git a/internal/msggateway/callback.go b/internal/msggateway/callback.go index d3c209894..7d5381754 100644 --- a/internal/msggateway/callback.go +++ b/internal/msggateway/callback.go @@ -16,7 +16,6 @@ package msggateway import ( "context" - "github.com/OpenIMSDK/tools/errs" "time" "github.com/OpenIMSDK/protocol/constant" @@ -50,11 +49,7 @@ func CallbackUserOnline(ctx context.Context, userID string, platformID int, isAp ConnID: connID, } resp := cbapi.CommonCallbackResp{} - err := http.CallBackPostReturn(ctx, callBackURL(), &req, &resp, config.Config.Callback.CallbackUserOnline) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err := http.CallBackPostReturn(ctx, callBackURL(), &req, &resp, config.Config.Callback.CallbackUserOnline); err != nil { return err } return nil @@ -78,11 +73,7 @@ func CallbackUserOffline(ctx context.Context, userID string, platformID int, con ConnID: connID, } resp := &cbapi.CallbackUserOfflineResp{} - err := http.CallBackPostReturn(ctx, callBackURL(), req, resp, config.Config.Callback.CallbackUserOffline) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err := http.CallBackPostReturn(ctx, callBackURL(), req, resp, config.Config.Callback.CallbackUserOffline); err != nil { return err } return nil @@ -105,11 +96,7 @@ func CallbackUserKickOff(ctx context.Context, userID string, platformID int) err Seq: time.Now().UnixMilli(), } resp := &cbapi.CommonCallbackResp{} - err := http.CallBackPostReturn(ctx, callBackURL(), req, resp, config.Config.Callback.CallbackUserOffline) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err := http.CallBackPostReturn(ctx, callBackURL(), req, resp, config.Config.Callback.CallbackUserOffline); err != nil { return err } return nil diff --git a/internal/push/callback.go b/internal/push/callback.go index 62549a65c..2085493c5 100644 --- a/internal/push/callback.go +++ b/internal/push/callback.go @@ -19,7 +19,6 @@ import ( "github.com/OpenIMSDK/protocol/constant" "github.com/OpenIMSDK/protocol/sdkws" - "github.com/OpenIMSDK/tools/errs" "github.com/OpenIMSDK/tools/mcontext" "github.com/OpenIMSDK/tools/utils" @@ -62,9 +61,6 @@ func callbackOfflinePush( } resp := &callbackstruct.CallbackBeforePushResp{} if err := http.CallBackPostReturn(ctx, url(), req, resp, config.Config.Callback.CallbackOfflinePush); err != nil { - if err == errs.ErrCallbackContinue { - return nil - } return err } if len(resp.UserIDs) != 0 { @@ -99,11 +95,7 @@ func callbackOnlinePush(ctx context.Context, userIDs []string, msg *sdkws.MsgDat Content: GetContent(msg), } resp := &callbackstruct.CallbackBeforePushResp{} - err := http.CallBackPostReturn(ctx, url(), req, resp, config.Config.Callback.CallbackOnlinePush) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err := http.CallBackPostReturn(ctx, url(), req, resp, config.Config.Callback.CallbackOnlinePush); err != nil { return err } return nil @@ -136,9 +128,6 @@ func callbackBeforeSuperGroupOnlinePush( } resp := &callbackstruct.CallbackBeforeSuperGroupOnlinePushResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSuperGroupOnlinePush); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil diff --git a/internal/rpc/friend/callback.go b/internal/rpc/friend/callback.go index a7cf3032b..d3b853ef9 100644 --- a/internal/rpc/friend/callback.go +++ b/internal/rpc/friend/callback.go @@ -19,7 +19,6 @@ import ( "github.com/OpenIMSDK/tools/utils" pbfriend "github.com/OpenIMSDK/protocol/friend" - "github.com/OpenIMSDK/tools/errs" cbapi "github.com/openimsdk/open-im-server/v3/pkg/callbackstruct" "github.com/openimsdk/open-im-server/v3/pkg/common/config" "github.com/openimsdk/open-im-server/v3/pkg/common/http" @@ -37,9 +36,6 @@ func CallbackBeforeAddFriend(ctx context.Context, req *pbfriend.ApplyToAddFriend } resp := &cbapi.CallbackBeforeAddFriendResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeAddFriend); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil @@ -57,9 +53,6 @@ func CallbackBeforeSetFriendRemark(ctx context.Context, req *pbfriend.SetFriendR } resp := &cbapi.CallbackBeforeSetFriendRemarkResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeAddFriend); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } utils.NotNilReplace(&req.Remark, &resp.Remark) @@ -78,9 +71,6 @@ func CallbackAfterSetFriendRemark(ctx context.Context, req *pbfriend.SetFriendRe } resp := &cbapi.CallbackAfterSetFriendRemarkResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeAddFriend); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil diff --git a/internal/rpc/friend/friend.go b/internal/rpc/friend/friend.go index be5aa1759..24014ace1 100644 --- a/internal/rpc/friend/friend.go +++ b/internal/rpc/friend/friend.go @@ -218,7 +218,7 @@ func (s *friendServer) SetFriendRemark( ) (resp *pbfriend.SetFriendRemarkResp, err error) { defer log.ZInfo(ctx, utils.GetFuncName()+" Return") - if err := CallbackBeforeSetFriendRemark(ctx, req); err != nil && err != errs.ErrCallbackContinue { + if err = CallbackBeforeSetFriendRemark(ctx, req); err != nil && err != errs.ErrCallbackContinue { return nil, err } resp = &pbfriend.SetFriendRemarkResp{} diff --git a/internal/rpc/group/callback.go b/internal/rpc/group/callback.go index ed31a62d3..13f9737b5 100644 --- a/internal/rpc/group/callback.go +++ b/internal/rpc/group/callback.go @@ -21,7 +21,6 @@ import ( "github.com/OpenIMSDK/protocol/constant" "github.com/OpenIMSDK/protocol/group" "github.com/OpenIMSDK/protocol/wrapperspb" - "github.com/OpenIMSDK/tools/errs" "github.com/OpenIMSDK/tools/mcontext" "github.com/OpenIMSDK/tools/utils" @@ -60,17 +59,7 @@ func CallbackBeforeCreateGroup(ctx context.Context, req *group.CreateGroupReq) ( }) } resp := &callbackstruct.CallbackBeforeCreateGroupResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - cbReq, - resp, - config.Config.Callback.CallbackBeforeCreateGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeCreateGroup); err != nil { return err } utils.NotNilReplace(&req.GroupInfo.GroupID, resp.GroupID) @@ -113,17 +102,7 @@ func CallbackAfterCreateGroup(ctx context.Context, req *group.CreateGroupReq) (e }) } resp := &callbackstruct.CallbackAfterCreateGroupResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - cbReq, - resp, - config.Config.Callback.CallbackAfterCreateGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackAfterCreateGroup); err != nil { return err } return nil @@ -145,17 +124,7 @@ func CallbackBeforeMemberJoinGroup( GroupEx: groupEx, } resp := &callbackstruct.CallbackBeforeMemberJoinGroupResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - callbackReq, - resp, - config.Config.Callback.CallbackBeforeMemberJoinGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, callbackReq, resp, config.Config.Callback.CallbackBeforeMemberJoinGroup); err != nil { return err } if resp.MuteEndTime != nil { @@ -190,17 +159,7 @@ func CallbackBeforeSetGroupMemberInfo(ctx context.Context, req *group.SetGroupMe callbackReq.Ex = &req.Ex.Value } resp := &callbackstruct.CallbackBeforeSetGroupMemberInfoResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - callbackReq, - resp, - config.Config.Callback.CallbackBeforeSetGroupMemberInfo, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, callbackReq, resp, config.Config.Callback.CallbackBeforeSetGroupMemberInfo); err != nil { return err } if resp.FaceURL != nil { @@ -240,17 +199,7 @@ func CallbackAfterSetGroupMemberInfo(ctx context.Context, req *group.SetGroupMem callbackReq.Ex = &req.Ex.Value } resp := &callbackstruct.CallbackAfterSetGroupMemberInfoResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - callbackReq, - resp, - config.Config.Callback.CallbackBeforeSetGroupMemberInfo, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, callbackReq, resp, config.Config.Callback.CallbackBeforeSetGroupMemberInfo); err != nil { return err } return nil @@ -266,17 +215,7 @@ func CallbackQuitGroup(ctx context.Context, req *group.QuitGroupReq) (err error) UserID: req.UserID, } resp := &callbackstruct.CallbackQuitGroupResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - cbReq, - resp, - config.Config.Callback.CallbackQuitGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackQuitGroup); err != nil { return err } return nil @@ -292,17 +231,7 @@ func CallbackKillGroupMember(ctx context.Context, req *pbgroup.KickGroupMemberRe KickedUserIDs: req.KickedUserIDs, } resp := &callbackstruct.CallbackKillGroupMemberResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - cbReq, - resp, - config.Config.Callback.CallbackQuitGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackQuitGroup); err != nil { return err } return nil @@ -314,17 +243,7 @@ func CallbackDismissGroup(ctx context.Context, req *callbackstruct.CallbackDisMi } req.CallbackCommand = callbackstruct.CallbackDisMissGroupCommand resp := &callbackstruct.CallbackDisMissGroupResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - req, - resp, - config.Config.Callback.CallbackQuitGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackQuitGroup); err != nil { return err } return nil @@ -338,17 +257,7 @@ func CallbackApplyJoinGroupBefore(ctx context.Context, req *callbackstruct.Callb req.CallbackCommand = callbackstruct.CallbackBeforeJoinGroupCommand resp := &callbackstruct.CallbackJoinGroupResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - req, - resp, - config.Config.Callback.CallbackBeforeJoinGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeJoinGroup); err != nil { return err } @@ -368,17 +277,7 @@ func CallbackTransferGroupOwnerAfter(ctx context.Context, req *pbgroup.TransferG } resp := &callbackstruct.CallbackTransferGroupOwnerResp{} - err = http.CallBackPostReturn( - ctx, - config.Config.Callback.CallbackUrl, - cbReq, - resp, - config.Config.Callback.CallbackBeforeJoinGroup, - ) - if err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } + if err = http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeJoinGroup); err != nil { return err } return nil diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index cee9088b6..227b7959d 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -842,7 +842,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbgroup.JoinGroupReq) ReqMessage: req.ReqMessage, } - if err := CallbackApplyJoinGroupBefore(ctx, reqCall); err != nil { + if err = CallbackApplyJoinGroupBefore(ctx, reqCall); err != nil { return nil, err } _, err = s.GroupDatabase.TakeGroupMember(ctx, req.GroupID, req.InviterUserID) diff --git a/internal/rpc/msg/as_read.go b/internal/rpc/msg/as_read.go index 4434d076f..49113aa0b 100644 --- a/internal/rpc/msg/as_read.go +++ b/internal/rpc/msg/as_read.go @@ -172,7 +172,7 @@ func (m *msgServer) updateReadStatus(ctx context.Context, req *msg.MarkConversat ContentType: int64(conversation.ConversationType), } if err := CallbackGroupMsgRead(ctx, reqCall); err != nil { - return nil, err + return err } if req.HasReadSeq > hasReadSeq { diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index cbf6e881f..85c002bf3 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -21,7 +21,6 @@ import ( "github.com/OpenIMSDK/protocol/constant" pbchat "github.com/OpenIMSDK/protocol/msg" - "github.com/OpenIMSDK/tools/errs" "github.com/OpenIMSDK/tools/log" "github.com/OpenIMSDK/tools/mcontext" "github.com/OpenIMSDK/tools/utils" @@ -78,9 +77,6 @@ func callbackBeforeSendSingleMsg(ctx context.Context, msg *pbchat.SendMsgReq) er } resp := &cbapi.CallbackBeforeSendSingleMsgResp{} if err := http.CallBackPostReturn(ctx, cbURL(), req, resp, config.Config.Callback.CallbackBeforeSendSingleMsg); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil @@ -96,9 +92,6 @@ func callbackAfterSendSingleMsg(ctx context.Context, msg *pbchat.SendMsgReq) err } resp := &cbapi.CallbackAfterSendSingleMsgResp{} if err := http.CallBackPostReturn(ctx, cbURL(), req, resp, config.Config.Callback.CallbackAfterSendSingleMsg); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil @@ -114,9 +107,6 @@ func callbackBeforeSendGroupMsg(ctx context.Context, msg *pbchat.SendMsgReq) err } resp := &cbapi.CallbackBeforeSendGroupMsgResp{} if err := http.CallBackPostReturn(ctx, cbURL(), req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil @@ -132,9 +122,6 @@ func callbackAfterSendGroupMsg(ctx context.Context, msg *pbchat.SendMsgReq) erro } resp := &cbapi.CallbackAfterSendGroupMsgResp{} if err := http.CallBackPostReturn(ctx, cbURL(), req, resp, config.Config.Callback.CallbackAfterSendGroupMsg); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil @@ -149,9 +136,6 @@ func callbackMsgModify(ctx context.Context, msg *pbchat.SendMsgReq) error { } resp := &cbapi.CallbackMsgModifyCommandResp{} if err := http.CallBackPostReturn(ctx, cbURL(), req, resp, config.Config.Callback.CallbackMsgModify); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } if resp.Content != nil { @@ -185,9 +169,6 @@ func CallbackGroupMsgRead(ctx context.Context, req *cbapi.CallbackGroupMsgReadRe resp := &cbapi.CallbackGroupMsgReadResp{} if err := http.CallBackPostReturn(ctx, cbURL(), req, resp, config.Config.Callback.CallbackMsgModify); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil @@ -202,9 +183,6 @@ func CallbackSingleMsgRead(ctx context.Context, req *cbapi.CallbackSingleMsgRead resp := &cbapi.CallbackGroupMsgReadResp{} if err := http.CallBackPostReturn(ctx, cbURL(), req, resp, config.Config.Callback.CallbackMsgModify); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil diff --git a/internal/rpc/user/callback.go b/internal/rpc/user/callback.go index 85cd96827..303542ed7 100644 --- a/internal/rpc/user/callback.go +++ b/internal/rpc/user/callback.go @@ -17,7 +17,6 @@ package user import ( "context" pbuser "github.com/OpenIMSDK/protocol/user" - "github.com/OpenIMSDK/tools/errs" "github.com/OpenIMSDK/tools/utils" cbapi "github.com/openimsdk/open-im-server/v3/pkg/callbackstruct" @@ -37,9 +36,6 @@ func CallbackBeforeUpdateUserInfo(ctx context.Context, req *pbuser.UpdateUserInf } resp := &cbapi.CallbackBeforeUpdateUserInfoResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeUpdateUserInfo); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } utils.NotNilReplace(&req.UserInfo.FaceURL, resp.FaceURL) @@ -60,9 +56,6 @@ func CallbackAfterUpdateUserInfo(ctx context.Context, req *pbuser.UpdateUserInfo } resp := &cbapi.CallbackAfterUpdateUserInfoResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeUpdateUserInfo); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil @@ -80,9 +73,6 @@ func CallbackBeforeUserRegister(ctx context.Context, req *pbuser.UserRegisterReq resp := &cbapi.CallbackBeforeUserRegisterResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeUpdateUserInfo); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } utils.NotNilReplace(&req.Users, &resp.Users) @@ -101,9 +91,6 @@ func CallbackAfterUserRegister(ctx context.Context, req *pbuser.UserRegisterReq) resp := &cbapi.CallbackBeforeUserRegisterResp{} if err := http.CallBackPostReturn(ctx, config.Config.Callback.CallbackUrl, cbReq, resp, config.Config.Callback.CallbackBeforeUpdateUserInfo); err != nil { - if errs.Unwrap(err) == errs.ErrCallbackContinue { - return nil - } return err } return nil diff --git a/pkg/common/http/http_client.go b/pkg/common/http/http_client.go index c45e9f8ad..f0fde3099 100644 --- a/pkg/common/http/http_client.go +++ b/pkg/common/http/http_client.go @@ -106,7 +106,7 @@ func PostReturn(ctx context.Context, url string, header map[string]string, input } func callBackPostReturn(ctx context.Context, url, command string, input interface{}, output callbackstruct.CallbackResp, callbackConfig config.CallBackConfig) error { - defer log.ZDebug(ctx, "callback", "url", url, "command", command, "input", input, "callbackConfig", callbackConfig) + defer log.ZDebug(ctx, "callback", "url", url, "command", command, "input", input, "output", output, "callbackConfig", callbackConfig) // //v := urllib.Values{} //v.Set(constant.CallbackCommand, command) @@ -117,7 +117,7 @@ func callBackPostReturn(ctx context.Context, url, command string, input interfac if err != nil { if callbackConfig.CallbackFailedContinue != nil && *callbackConfig.CallbackFailedContinue { log.ZWarn(ctx, "callback failed but continue", err, "url", url) - return errs.ErrCallbackContinue + return nil } return errs.ErrNetwork.Wrap(err.Error()) } @@ -125,7 +125,7 @@ func callBackPostReturn(ctx context.Context, url, command string, input interfac if err = json.Unmarshal(b, output); err != nil { if callbackConfig.CallbackFailedContinue != nil && *callbackConfig.CallbackFailedContinue { log.ZWarn(ctx, "callback failed but continue", err, "url", url) - return errs.ErrCallbackContinue + return nil } return errs.ErrData.Wrap(err.Error()) } diff --git a/scripts/install/environment.sh b/scripts/install/environment.sh index 6a87b44a6..aa4141a7d 100755 --- a/scripts/install/environment.sh +++ b/scripts/install/environment.sh @@ -376,6 +376,10 @@ def "FRIEND_VERIFY" "false" # 朋友验证 def "IOS_PUSH_SOUND" "xxx" # IOS推送声音 def "IOS_BADGE_COUNT" "true" # IOS徽章计数 def "IOS_PRODUCTION" "false" # IOS生产 +# callback 配置 +def "CALLBACK_ENABLE" "true" # 是否开启 Callback +def "CALLBACK_TIMEOUT" "5" # 最长超时时间 +def "CALLBACK_FAILED_CONTINUE" "true" # 失败后是否继续 ###################### Prometheus 配置信息 ###################### # 是否启用 Prometheus