mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
callback add
This commit is contained in:
parent
0938b11f83
commit
33ee58904b
@ -311,6 +311,9 @@ callback:
|
|||||||
callbackAfterSendGroupMsg:
|
callbackAfterSendGroupMsg:
|
||||||
enable: false
|
enable: false
|
||||||
callbackTimeOut: 2
|
callbackTimeOut: 2
|
||||||
|
callbackAfterConsumeGroupMsg:
|
||||||
|
enable: false
|
||||||
|
callbackTimeOut: 2
|
||||||
callbackMsgModify:
|
callbackMsgModify:
|
||||||
enable: false
|
enable: false
|
||||||
callbackTimeOut: 2
|
callbackTimeOut: 2
|
||||||
|
62
internal/msg_transfer/logic/callback.go
Normal file
62
internal/msg_transfer/logic/callback.go
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
package logic
|
||||||
|
|
||||||
|
import (
|
||||||
|
cbApi "Open_IM/pkg/call_back_struct"
|
||||||
|
"Open_IM/pkg/common/callback"
|
||||||
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
"Open_IM/pkg/common/http"
|
||||||
|
"Open_IM/pkg/common/log"
|
||||||
|
pbChat "Open_IM/pkg/proto/msg"
|
||||||
|
"Open_IM/pkg/utils"
|
||||||
|
http2 "net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func callbackAfterConsumeGroupMsg(msg []*pbChat.MsgDataToMQ, triggerID string) cbApi.CommonCallbackResp {
|
||||||
|
callbackResp := cbApi.CommonCallbackResp{OperationID: triggerID}
|
||||||
|
if !config.Config.Callback.CallbackAfterConsumeGroupMsg.Enable {
|
||||||
|
return callbackResp
|
||||||
|
}
|
||||||
|
for _, v := range msg {
|
||||||
|
if v.MsgData.SessionType == constant.SuperGroupChatType || v.MsgData.SessionType == constant.GroupChatType {
|
||||||
|
commonCallbackReq := copyCallbackCommonReqStruct(v)
|
||||||
|
commonCallbackReq.CallbackCommand = constant.CallbackAfterConsumeGroupMsgCommand
|
||||||
|
req := cbApi.CallbackAfterConsumeGroupMsgReq{
|
||||||
|
CommonCallbackReq: commonCallbackReq,
|
||||||
|
GroupID: v.MsgData.GroupID,
|
||||||
|
}
|
||||||
|
resp := &cbApi.CallbackAfterConsumeGroupMsgResp{CommonCallbackResp: &callbackResp}
|
||||||
|
defer log.NewDebug(triggerID, utils.GetSelfFuncName(), req, *resp)
|
||||||
|
if err := http.CallBackPostReturn(config.Config.Callback.CallbackUrl, constant.CallbackAfterConsumeGroupMsgCommand, req, resp, config.Config.Callback.CallbackAfterConsumeGroupMsg.CallbackTimeOut); err != nil {
|
||||||
|
callbackResp.ErrCode = http2.StatusInternalServerError
|
||||||
|
callbackResp.ErrMsg = err.Error()
|
||||||
|
return callbackResp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log.NewDebug(triggerID, utils.GetSelfFuncName(), msg)
|
||||||
|
|
||||||
|
return callbackResp
|
||||||
|
}
|
||||||
|
func copyCallbackCommonReqStruct(msg *pbChat.MsgDataToMQ) cbApi.CommonCallbackReq {
|
||||||
|
req := cbApi.CommonCallbackReq{
|
||||||
|
SendID: msg.MsgData.SendID,
|
||||||
|
ServerMsgID: msg.MsgData.ServerMsgID,
|
||||||
|
ClientMsgID: msg.MsgData.ClientMsgID,
|
||||||
|
OperationID: msg.OperationID,
|
||||||
|
SenderPlatformID: msg.MsgData.SenderPlatformID,
|
||||||
|
SenderNickname: msg.MsgData.SenderNickname,
|
||||||
|
SessionType: msg.MsgData.SessionType,
|
||||||
|
MsgFrom: msg.MsgData.MsgFrom,
|
||||||
|
ContentType: msg.MsgData.ContentType,
|
||||||
|
Status: msg.MsgData.Status,
|
||||||
|
CreateTime: msg.MsgData.CreateTime,
|
||||||
|
AtUserIDList: msg.MsgData.AtUserIDList,
|
||||||
|
SenderFaceURL: msg.MsgData.SenderFaceURL,
|
||||||
|
Content: callback.GetContent(msg.MsgData),
|
||||||
|
Seq: msg.MsgData.Seq,
|
||||||
|
Ex: msg.MsgData.Ex,
|
||||||
|
}
|
||||||
|
return req
|
||||||
|
}
|
@ -111,6 +111,10 @@ func (och *OnlineHistoryRedisConsumerHandler) Run(channelID int) {
|
|||||||
singleMsgSuccessCountMutex.Lock()
|
singleMsgSuccessCountMutex.Lock()
|
||||||
singleMsgSuccessCount += uint64(len(storageMsgList))
|
singleMsgSuccessCount += uint64(len(storageMsgList))
|
||||||
singleMsgSuccessCountMutex.Unlock()
|
singleMsgSuccessCountMutex.Unlock()
|
||||||
|
callbackResp := callbackAfterConsumeGroupMsg(storageMsgList, triggerID)
|
||||||
|
if callbackResp.ErrCode != 0 {
|
||||||
|
log.NewError(triggerID, utils.GetSelfFuncName(), "callbackAfterConsumeGroupMsg resp: ", callbackResp)
|
||||||
|
}
|
||||||
och.SendMessageToMongoCH(msgChannelValue.aggregationID, triggerID, storageMsgList, lastSeq)
|
och.SendMessageToMongoCH(msgChannelValue.aggregationID, triggerID, storageMsgList, lastSeq)
|
||||||
|
|
||||||
for _, v := range storageMsgList {
|
for _, v := range storageMsgList {
|
||||||
|
@ -41,6 +41,14 @@ type CallbackAfterSendGroupMsgResp struct {
|
|||||||
*CommonCallbackResp
|
*CommonCallbackResp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CallbackAfterConsumeGroupMsgReq struct {
|
||||||
|
CommonCallbackReq
|
||||||
|
GroupID string `json:"groupID"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type CallbackAfterConsumeGroupMsgResp struct {
|
||||||
|
*CommonCallbackResp
|
||||||
|
}
|
||||||
type CallbackMsgModifyCommandReq struct {
|
type CallbackMsgModifyCommandReq struct {
|
||||||
CommonCallbackReq
|
CommonCallbackReq
|
||||||
}
|
}
|
||||||
|
@ -287,6 +287,7 @@ type config struct {
|
|||||||
CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"`
|
CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"`
|
||||||
CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"`
|
CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"`
|
||||||
CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"`
|
CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"`
|
||||||
|
CallbackAfterConsumeGroupMsg callBackConfig `yaml:"callbackAfterConsumeGroupMsg"`
|
||||||
CallbackMsgModify callBackConfig `yaml:"callbackMsgModify"`
|
CallbackMsgModify callBackConfig `yaml:"callbackMsgModify"`
|
||||||
CallbackUserOnline callBackConfig `yaml:"callbackUserOnline"`
|
CallbackUserOnline callBackConfig `yaml:"callbackUserOnline"`
|
||||||
CallbackUserOffline callBackConfig `yaml:"callbackUserOffline"`
|
CallbackUserOffline callBackConfig `yaml:"callbackUserOffline"`
|
||||||
|
@ -210,6 +210,7 @@ const (
|
|||||||
CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsgCommand"
|
CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsgCommand"
|
||||||
CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsgCommand"
|
CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsgCommand"
|
||||||
CallbackAfterSendGroupMsgCommand = "callbackAfterSendGroupMsgCommand"
|
CallbackAfterSendGroupMsgCommand = "callbackAfterSendGroupMsgCommand"
|
||||||
|
CallbackAfterConsumeGroupMsgCommand = "callbackAfterConsumeGroupMsgCommand"
|
||||||
CallbackMsgModifyCommand = "callbackMsgModifyCommand"
|
CallbackMsgModifyCommand = "callbackMsgModifyCommand"
|
||||||
CallbackUserOnlineCommand = "callbackUserOnlineCommand"
|
CallbackUserOnlineCommand = "callbackUserOnlineCommand"
|
||||||
CallbackUserOfflineCommand = "callbackUserOfflineCommand"
|
CallbackUserOfflineCommand = "callbackUserOfflineCommand"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user