diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 8c40b8c81..b6c88da48 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -196,12 +196,10 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) { } func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) { - sendMsgCount++ log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID) nReply := new(pbChat.SendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendSignalMsg) isPass2, errCode2, errMsg2, signalResp, msgData := ws.signalMessageAssemble(pData.(*sdk_ws.SignalReq)) - if isPass && isPass2 { pbData := pbChat.SendMsgReq{ Token: m.Token, @@ -224,6 +222,7 @@ func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) { } else { if isPass { + log.NewError(m.OperationID, isPass2, errCode2, errMsg2, *signalResp, *msgData) ws.sendSignalMsgResp(conn, errCode2, errMsg2, m, signalResp) } else { ws.sendSignalMsgResp(conn, errCode, errMsg, m, signalResp) diff --git a/internal/msg_gateway/gate/validate.go b/internal/msg_gateway/gate/validate.go index 76dbabd2a..7ec0a5dcb 100644 --- a/internal/msg_gateway/gate/validate.go +++ b/internal/msg_gateway/gate/validate.go @@ -193,45 +193,71 @@ func (ws *WServer) signalMessageAssemble(s *open_im_sdk.SignalReq) (isPass bool, return true, 0, "", &resp, &msg case *open_im_sdk.SignalReq_Cancel: - // cancel:=open_im_sdk.SignalResp_Cancel{&open_im_sdk.SignalCancelReply{ - // }} - // resp.Payload = &cancel - // msg.OfflinePushInfo = payload.Cancel.Invitation.OfflinePushInfo - // msg.SendID = payload.Cancel.Invitation.Invitation.InviterUserID - // msg.SessionType = payload.Cancel.Invitation.Invitation.SessionType - // if len(payload.Cancel.Invitation.Invitation.InviteeUserIDList) > 0 { - // switch payload.Cancel.Invitation.Invitation.SessionType { - // case constant.SingleChatType: - // msg.RecvID = payload.Cancel.Invitation.Invitation.InviteeUserIDList[0] - // case constant.GroupChatType: - // msg.GroupID = payload.Cancel.Invitation.Invitation.GroupID - // } - // }else { - // return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil - // } - // msg.ClientMsgID = utils.GetMsgID(payload.Cancel.Invitation.Invitation.InviterUserID) - // return true, 0, "", &resp, &msg - //case *open_im_sdk.SignalReq_Accept: - // cancel:=open_im_sdk.SignalResp_Accept{&open_im_sdk.SignalCancelReply{ - // }} - // resp.Payload = &cancel - // msg.OfflinePushInfo = payload.Cancel.Invitation.OfflinePushInfo - // msg.SendID = payload.Cancel.Invitation.Invitation.InviterUserID - // msg.SessionType = payload.Cancel.Invitation.Invitation.SessionType - // if len(payload.Cancel.Invitation.Invitation.InviteeUserIDList) > 0 { - // switch payload.Cancel.Invitation.Invitation.SessionType { - // case constant.SingleChatType: - // msg.RecvID = payload.Cancel.Invitation.Invitation.InviteeUserIDList[0] - // case constant.GroupChatType: - // msg.GroupID = payload.Cancel.Invitation.Invitation.GroupID - // } - // }else { - // return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil - // } - // msg.ClientMsgID = utils.GetMsgID(payload.Cancel.Invitation.Invitation.InviterUserID) - // return true, 0, "", &resp, &msg + cancel := open_im_sdk.SignalResp_Cancel{&open_im_sdk.SignalCancelReply{}} + resp.Payload = &cancel + msg.OfflinePushInfo = payload.Cancel.Invitation.OfflinePushInfo + msg.SendID = payload.Cancel.Invitation.Invitation.InviterUserID + msg.SenderPlatformID = payload.Cancel.Invitation.Invitation.PlatformID + msg.SessionType = payload.Cancel.Invitation.Invitation.SessionType + if len(payload.Cancel.Invitation.Invitation.InviteeUserIDList) > 0 { + switch payload.Cancel.Invitation.Invitation.SessionType { + case constant.SingleChatType: + msg.RecvID = payload.Cancel.Invitation.Invitation.InviteeUserIDList[0] + case constant.GroupChatType: + msg.GroupID = payload.Cancel.Invitation.Invitation.GroupID + } + } else { + return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.Cancel.InviterUserID) + return true, 0, "", &resp, &msg + case *open_im_sdk.SignalReq_Accept: + token, err2 := media.GetJoinToken(payload.Accept.Invitation.Invitation.RoomID, payload.Accept.InviteeUserID) + if err2 != nil { + return false, 201, err2.Error(), nil, nil + } + cancel := open_im_sdk.SignalResp_Accept{&open_im_sdk.SignalAcceptReply{ + Token: token, + LiveURL: media.GetUrl(), + RoomID: payload.Accept.Invitation.Invitation.RoomID, + }} + resp.Payload = &cancel + msg.OfflinePushInfo = payload.Accept.Invitation.OfflinePushInfo + msg.SendID = payload.Accept.InviteeUserID + msg.SenderPlatformID = payload.Accept.Invitation.Invitation.PlatformID + msg.SessionType = payload.Accept.Invitation.Invitation.SessionType + if len(payload.Accept.Invitation.Invitation.InviteeUserIDList) > 0 { + switch payload.Accept.Invitation.Invitation.SessionType { + case constant.SingleChatType: + msg.RecvID = payload.Accept.Invitation.Invitation.InviterUserID + case constant.GroupChatType: + msg.GroupID = payload.Accept.Invitation.Invitation.GroupID + } + } else { + return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.Accept.InviteeUserID) + return true, 0, "", &resp, &msg case *open_im_sdk.SignalReq_HungUp: case *open_im_sdk.SignalReq_Reject: + cancel := open_im_sdk.SignalResp_Reject{&open_im_sdk.SignalRejectReply{}} + resp.Payload = &cancel + msg.OfflinePushInfo = payload.Reject.Invitation.OfflinePushInfo + msg.SendID = payload.Reject.InviteeUserID + msg.SenderPlatformID = payload.Reject.Invitation.Invitation.PlatformID + msg.SessionType = payload.Reject.Invitation.Invitation.SessionType + if len(payload.Reject.Invitation.Invitation.InviteeUserIDList) > 0 { + switch payload.Reject.Invitation.Invitation.SessionType { + case constant.SingleChatType: + msg.RecvID = payload.Reject.Invitation.Invitation.InviterUserID + case constant.GroupChatType: + msg.GroupID = payload.Reject.Invitation.Invitation.GroupID + } + } else { + return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.Reject.InviteeUserID) + return true, 0, "", &resp, &msg } return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil }