diff --git a/src/msg_gateway/gate/rpc_server.go b/src/msg_gateway/gate/rpc_server.go index 0fa2c4aae..703e684cb 100644 --- a/src/msg_gateway/gate/rpc_server.go +++ b/src/msg_gateway/gate/rpc_server.go @@ -6,11 +6,13 @@ import ( "Open_IM/src/common/log" "Open_IM/src/grpc-etcdv3/getcdv3" pbRelay "Open_IM/src/proto/relay" + pbWs "Open_IM/src/proto/sdk_ws" "Open_IM/src/utils" "bytes" "context" "encoding/gob" "fmt" + "github.com/golang/protobuf/proto" "github.com/gorilla/websocket" "google.golang.org/grpc" "net" @@ -56,27 +58,29 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR log.InfoByKv("PushMsgToUser is arriving", in.OperationID, "args", in.String()) var resp []*pbRelay.SingleMsgToUser var RecvID string - msg := make(map[string]interface{}) - mReply := make(map[string]interface{}) - mReply["reqIdentifier"] = constant.WSPushMsg - mReply["errCode"] = 0 - mReply["errMsg"] = "" - msg["sendID"] = in.SendID - msg["recvID"] = in.RecvID - msg["msgFrom"] = in.MsgFrom - msg["contentType"] = in.ContentType - msg["sessionType"] = in.SessionType - msg["senderNickName"] = in.SenderNickName - msg["senderFaceUrl"] = in.SenderFaceURL - msg["clientMsgID"] = in.ClientMsgID - msg["serverMsgID"] = in.ServerMsgID - msg["content"] = in.Content - msg["seq"] = in.RecvSeq - msg["sendTime"] = in.SendTime - msg["senderPlatformID"] = in.PlatformID - mReply["data"] = msg - var b bytes.Buffer - enc := gob.NewEncoder(&b) + msg := pbWs.MsgData{ + SendID: in.SendID, + RecvID: in.RecvID, + MsgFrom: in.MsgFrom, + ContentType: in.ContentType, + SessionType: in.SessionType, + SenderNickName: in.SenderNickName, + SenderFaceURL: in.SenderFaceURL, + ClientMsgID: in.ClientMsgID, + ServerMsgID: in.ServerMsgID, + Content: in.Content, + Seq: in.RecvSeq, + SendTime: in.SendTime, + SenderPlatformID: in.PlatformID, + } + msgBytes, _ := proto.Marshal(&msg) + mReply := Resp{ + ReqIdentifier: constant.WSPushMsg, + OperationID: in.OperationID, + Data: msgBytes, + } + var replyBytes bytes.Buffer + enc := gob.NewEncoder(&replyBytes) err := enc.Encode(mReply) if err != nil { fmt.Println(err) @@ -88,12 +92,12 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR RecvID = strings.Split(in.GetRecvID(), " ")[0] } var tag bool - a := genUidPlatformArray(RecvID) - for _, v := range a { + userIDList := genUidPlatformArray(RecvID) + for _, v := range userIDList { if conn := ws.getUserConn(v); conn != nil { UIDAndPID := strings.Split(v, " ") tag = true - resultCode := sendMsgToUser(conn, b.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) + resultCode := sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) temp := &pbRelay.SingleMsgToUser{ ResultCode: resultCode, RecvID: UIDAndPID[0], diff --git a/src/msg_gateway/gate/validate.go b/src/msg_gateway/gate/validate.go index 5a8843a21..d69d1787f 100644 --- a/src/msg_gateway/gate/validate.go +++ b/src/msg_gateway/gate/validate.go @@ -15,7 +15,7 @@ import ( type Req struct { ReqIdentifier int32 `json:"reqIdentifier" validate:"required"` - Token string `json:"token" validate:"required"` + Token string `json:"token" ` SendID string `json:"sendID" validate:"required"` OperationID string `json:"operationID" validate:"required"` MsgIncr string `json:"msgIncr" validate:"required"` diff --git a/src/rpc/chat/chat/send_msg.go b/src/rpc/chat/chat/send_msg.go index 0f1d2d6b0..960df7ed5 100644 --- a/src/rpc/chat/chat/send_msg.go +++ b/src/rpc/chat/chat/send_msg.go @@ -44,9 +44,9 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* replay := pbChat.UserSendMsgResp{} log.InfoByKv("sendMsg", pb.OperationID, "args", pb.String()) time := utils.GetCurrentTimestampByMill() - if !utils.VerifyToken(pb.Token, pb.SendID) { - return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) - } + //if !utils.VerifyToken(pb.Token, pb.SendID) { + // return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) + //} log.NewInfo(pb.OperationID, "VerifyToken cost time ", utils.GetCurrentTimestampByMill()-time) serverMsgID := GetMsgID(pb.SendID) pbData := pbChat.WSToMsgSvrChatMsg{}