add Signal message

This commit is contained in:
Gordon 2022-03-14 16:33:59 +08:00
parent 433fef9992
commit 9659638f0c
2 changed files with 64 additions and 39 deletions

View File

@ -196,12 +196,10 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) {
} }
func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) { 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) log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID)
nReply := new(pbChat.SendMsgResp) nReply := new(pbChat.SendMsgResp)
isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendSignalMsg) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendSignalMsg)
isPass2, errCode2, errMsg2, signalResp, msgData := ws.signalMessageAssemble(pData.(*sdk_ws.SignalReq)) isPass2, errCode2, errMsg2, signalResp, msgData := ws.signalMessageAssemble(pData.(*sdk_ws.SignalReq))
if isPass && isPass2 { if isPass && isPass2 {
pbData := pbChat.SendMsgReq{ pbData := pbChat.SendMsgReq{
Token: m.Token, Token: m.Token,
@ -224,6 +222,7 @@ func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) {
} else { } else {
if isPass { if isPass {
log.NewError(m.OperationID, isPass2, errCode2, errMsg2, *signalResp, *msgData)
ws.sendSignalMsgResp(conn, errCode2, errMsg2, m, signalResp) ws.sendSignalMsgResp(conn, errCode2, errMsg2, m, signalResp)
} else { } else {
ws.sendSignalMsgResp(conn, errCode, errMsg, m, signalResp) ws.sendSignalMsgResp(conn, errCode, errMsg, m, signalResp)

View File

@ -193,45 +193,71 @@ func (ws *WServer) signalMessageAssemble(s *open_im_sdk.SignalReq) (isPass bool,
return true, 0, "", &resp, &msg return true, 0, "", &resp, &msg
case *open_im_sdk.SignalReq_Cancel: case *open_im_sdk.SignalReq_Cancel:
// cancel:=open_im_sdk.SignalResp_Cancel{&open_im_sdk.SignalCancelReply{ cancel := open_im_sdk.SignalResp_Cancel{&open_im_sdk.SignalCancelReply{}}
// }} resp.Payload = &cancel
// resp.Payload = &cancel msg.OfflinePushInfo = payload.Cancel.Invitation.OfflinePushInfo
// msg.OfflinePushInfo = payload.Cancel.Invitation.OfflinePushInfo msg.SendID = payload.Cancel.Invitation.Invitation.InviterUserID
// msg.SendID = payload.Cancel.Invitation.Invitation.InviterUserID msg.SenderPlatformID = payload.Cancel.Invitation.Invitation.PlatformID
// msg.SessionType = payload.Cancel.Invitation.Invitation.SessionType msg.SessionType = payload.Cancel.Invitation.Invitation.SessionType
// if len(payload.Cancel.Invitation.Invitation.InviteeUserIDList) > 0 { if len(payload.Cancel.Invitation.Invitation.InviteeUserIDList) > 0 {
// switch payload.Cancel.Invitation.Invitation.SessionType { switch payload.Cancel.Invitation.Invitation.SessionType {
// case constant.SingleChatType: case constant.SingleChatType:
// msg.RecvID = payload.Cancel.Invitation.Invitation.InviteeUserIDList[0] msg.RecvID = payload.Cancel.Invitation.Invitation.InviteeUserIDList[0]
// case constant.GroupChatType: case constant.GroupChatType:
// msg.GroupID = payload.Cancel.Invitation.Invitation.GroupID msg.GroupID = payload.Cancel.Invitation.Invitation.GroupID
// } }
// }else { } else {
// return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil
// } }
// msg.ClientMsgID = utils.GetMsgID(payload.Cancel.Invitation.Invitation.InviterUserID) msg.ClientMsgID = utils.GetMsgID(payload.Cancel.InviterUserID)
// return true, 0, "", &resp, &msg return true, 0, "", &resp, &msg
//case *open_im_sdk.SignalReq_Accept: case *open_im_sdk.SignalReq_Accept:
// cancel:=open_im_sdk.SignalResp_Accept{&open_im_sdk.SignalCancelReply{ token, err2 := media.GetJoinToken(payload.Accept.Invitation.Invitation.RoomID, payload.Accept.InviteeUserID)
// }} if err2 != nil {
// resp.Payload = &cancel return false, 201, err2.Error(), nil, nil
// msg.OfflinePushInfo = payload.Cancel.Invitation.OfflinePushInfo }
// msg.SendID = payload.Cancel.Invitation.Invitation.InviterUserID cancel := open_im_sdk.SignalResp_Accept{&open_im_sdk.SignalAcceptReply{
// msg.SessionType = payload.Cancel.Invitation.Invitation.SessionType Token: token,
// if len(payload.Cancel.Invitation.Invitation.InviteeUserIDList) > 0 { LiveURL: media.GetUrl(),
// switch payload.Cancel.Invitation.Invitation.SessionType { RoomID: payload.Accept.Invitation.Invitation.RoomID,
// case constant.SingleChatType: }}
// msg.RecvID = payload.Cancel.Invitation.Invitation.InviteeUserIDList[0] resp.Payload = &cancel
// case constant.GroupChatType: msg.OfflinePushInfo = payload.Accept.Invitation.OfflinePushInfo
// msg.GroupID = payload.Cancel.Invitation.Invitation.GroupID msg.SendID = payload.Accept.InviteeUserID
// } msg.SenderPlatformID = payload.Accept.Invitation.Invitation.PlatformID
// }else { msg.SessionType = payload.Accept.Invitation.Invitation.SessionType
// return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil if len(payload.Accept.Invitation.Invitation.InviteeUserIDList) > 0 {
// } switch payload.Accept.Invitation.Invitation.SessionType {
// msg.ClientMsgID = utils.GetMsgID(payload.Cancel.Invitation.Invitation.InviterUserID) case constant.SingleChatType:
// return true, 0, "", &resp, &msg 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_HungUp:
case *open_im_sdk.SignalReq_Reject: 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 return false, 201, errors.New("InviteeUserIDList is null").Error(), nil, nil
} }