diff --git a/internal/msg_gateway/gate/validate.go b/internal/msg_gateway/gate/validate.go index c763ff1b2..ec4df9b77 100644 --- a/internal/msg_gateway/gate/validate.go +++ b/internal/msg_gateway/gate/validate.go @@ -58,7 +58,19 @@ type SeqListData struct { func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, returnData interface{}) { switch r { - case constant.WSSendMsg | constant.WSSendSignalMsg: + case constant.WSSendMsg: + data := open_im_sdk.MsgData{} + if err := proto.Unmarshal(m.Data, &data); err != nil { + log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) + return false, 203, err.Error(), nil + } + if err := validate.Struct(data); err != nil { + log.ErrorByKv("data args validate err", "", "err", err.Error(), "reqIdentifier", r) + return false, 204, err.Error(), nil + + } + return true, 0, "", data + case constant.WSSendSignalMsg: data := open_im_sdk.MsgData{} if err := proto.Unmarshal(m.Data, &data); err != nil { log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r)