diff --git a/internal/demo/register/onboarding_process.go b/internal/demo/register/onboarding_process.go index a8d80666f..d58372dba 100644 --- a/internal/demo/register/onboarding_process.go +++ b/internal/demo/register/onboarding_process.go @@ -14,7 +14,6 @@ import ( commonPb "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "encoding/json" "errors" "fmt" "github.com/golang/protobuf/proto" diff --git a/internal/msg_gateway/gate/batch_push.go b/internal/msg_gateway/gate/batch_push.go index 8f556e4d5..9e08c4ef4 100644 --- a/internal/msg_gateway/gate/batch_push.go +++ b/internal/msg_gateway/gate/batch_push.go @@ -44,17 +44,23 @@ func (r *RPCServer) GetSingleUserMsgForPushPlatforms(operationID string, msgData } func (r *RPCServer) GetSingleUserMsgForPush(operationID string, msgData *sdk_ws.MsgData, pushToUserID string, platformID int) []*sdk_ws.MsgData { + msgData.MsgDataList = nil + return []*sdk_ws.MsgData{msgData} + userConn := ws.getUserConn(pushToUserID, platformID) if userConn == nil { + log.Debug(operationID, "userConn == nil") return []*sdk_ws.MsgData{msgData} } if msgData.Seq <= userConn.PushedMaxSeq { + log.Debug(operationID, "msgData.Seq <= userConn.PushedMaxSeq", msgData.Seq, userConn.PushedMaxSeq) return nil } msgList := r.GetSingleUserMsg(operationID, msgData.Seq, pushToUserID) if msgList == nil { + log.Debug(operationID, "GetSingleUserMsg msgList == nil", msgData.Seq, userConn.PushedMaxSeq) userConn.PushedMaxSeq = msgData.Seq return []*sdk_ws.MsgData{msgData} } @@ -65,6 +71,7 @@ func (r *RPCServer) GetSingleUserMsgForPush(operationID string, msgData *sdk_ws. userConn.PushedMaxSeq = v.Seq } } + log.Debug(operationID, "GetSingleUserMsg msgList len ", len(msgList), userConn.PushedMaxSeq) return msgList } diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 86a25850d..a3a137f0e 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -205,20 +205,28 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online for k, _ := range userConnMap { platformList = append(platformList, k) } - log.Debug(req.OperationID, "GetSingleUserMsgForPushPlatforms begin", req.MsgData.Seq, v, platformList) + log.Debug(req.OperationID, "GetSingleUserMsgForPushPlatforms begin", req.MsgData.Seq, v, platformList, req.MsgData.String()) needPushMapList := r.GetSingleUserMsgForPushPlatforms(req.OperationID, req.MsgData, v, platformList) - log.Debug(req.OperationID, "GetSingleUserMsgForPushPlatforms ", req.MsgData.Seq, v, platformList, len(needPushMapList)) + log.Debug(req.OperationID, "GetSingleUserMsgForPushPlatforms end", req.MsgData.Seq, v, platformList, len(needPushMapList)) for platform, list := range needPushMapList { if list != nil { - log.Debug(req.OperationID, "GetSingleUserMsgForPushPlatforms ", "userID: ", v, "platform: ", platform, "push msg num:", len(list)) + log.Debug(req.OperationID, "needPushMapList ", "userID: ", v, "platform: ", platform, "push msg num:", len(list)) for _, v := range list { + log.Debug(req.OperationID, "req.MsgData.MsgDataList begin", "len: ", len(req.MsgData.MsgDataList), v.String()) req.MsgData.MsgDataList = append(req.MsgData.MsgDataList, v) + log.Debug(req.OperationID, "req.MsgData.MsgDataList end", "len: ", len(req.MsgData.MsgDataList)) } + + log.Debug(req.OperationID, "r.encodeWsData no string") + log.Debug(req.OperationID, "r.encodeWsData data0 list ", req.MsgData.MsgDataList[0].String()) + + log.Debug(req.OperationID, "r.encodeWsData ", req.MsgData.String()) replyBytes, err := r.encodeWsData(req.MsgData, req.OperationID) if err != nil { log.Error(req.OperationID, "encodeWsData failed ", req.MsgData.String()) continue } + log.Debug(req.OperationID, "encodeWsData", "len: ", replyBytes.Len()) resultCode := sendMsgBatchToUser(userConnMap[platform], replyBytes.Bytes(), req, platform, v) if resultCode == 0 && utils.IsContainInt(platform, r.pushTerminal) { tempT.OnlinePush = true @@ -250,7 +258,13 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online }, nil } func (r *RPCServer) encodeWsData(wsData *sdk_ws.MsgData, operationID string) (bytes.Buffer, error) { - msgBytes, _ := proto.Marshal(wsData) + log.Debug(operationID, "encodeWsData begin", wsData.String()) + msgBytes, err := proto.Marshal(wsData) + if err != nil { + log.NewError(operationID, "Marshal", err.Error()) + return bytes.Buffer{}, utils.Wrap(err, "") + } + log.Debug(operationID, "encodeWsData begin", wsData.String()) mReply := Resp{ ReqIdentifier: constant.WSPushMsg, OperationID: operationID, @@ -258,10 +272,10 @@ func (r *RPCServer) encodeWsData(wsData *sdk_ws.MsgData, operationID string) (by } var replyBytes bytes.Buffer enc := gob.NewEncoder(&replyBytes) - err := enc.Encode(mReply) + err = enc.Encode(mReply) if err != nil { log.NewError(operationID, "data encode err", err.Error()) - return bytes.Buffer{}, err + return bytes.Buffer{}, utils.Wrap(err, "") } return replyBytes, nil } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 81fb024ca..a04bc9f8e 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -47,7 +47,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { grpcCons = getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) } //Online push message - log.Debug("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) + log.Debug(pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) for _, v := range grpcCons { msgClient := pbRelay.NewOnlineMessageRelayServiceClient(v) reply, err := msgClient.OnlineBatchPushOneMsg(context.Background(), &pbRelay.OnlineBatchPushOneMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserIDList: []string{pushMsg.PushToUserID}}) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index 741da029d..bf780008f 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -41,7 +41,7 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do echo "wait pid: " ${build_pid_array[i]} ${service_names[$i]} wait ${build_pid_array[i]} stat=$? - echo ${build_pid_array[i]} " " $stat + echo ${service_names[$i]} "pid: " ${build_pid_array[i]} "stat: " $stat if [ $stat == 0 ] then echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" diff --git a/script/batch_start_all.sh b/script/batch_start_all.sh index aaa6177ae..c2d78c509 100644 --- a/script/batch_start_all.sh +++ b/script/batch_start_all.sh @@ -21,25 +21,19 @@ echo "==========================================================">>../logs/openI echo "==========================================================">>../logs/openIM.log 2>&1 & build_pid_array=() - +idx=0 for i in ${need_to_start_server_shell[*]}; do chmod +x $i ./$i & build_pid=$! - build_pid_array[i]=$build_pid + echo "build_pid " $build_pid + build_pid_array[idx]=$build_pid + let idx=idx+1 done echo "wait all start finish....." -for i in ${need_to_start_server_shell[*]}; do - chmod +x $i - ./$i & - if [ $? -ne 0 ]; then - exit -1 - fi -done - - +exit 0 success_num=0 for ((i = 0; i < ${#need_to_start_server_shell[*]}; i++)); do @@ -49,11 +43,11 @@ for ((i = 0; i < ${#need_to_start_server_shell[*]}; i++)); do echo ${build_pid_array[i]} " " $stat if [ $stat == 0 ] then - echo -e "${GREEN_PREFIX}${need_to_start_server_shell[$i]} successfully be built ${COLOR_SUFFIX}\n" + # echo -e "${GREEN_PREFIX}${need_to_start_server_shell[$i]} successfully be built ${COLOR_SUFFIX}\n" let success_num=$success_num+1 else - echo -e "${RED_PREFIX}${need_to_start_server_shell[$i]} build failed ${COLOR_SUFFIX}\n" + #echo -e "${RED_PREFIX}${need_to_start_server_shell[$i]} build failed ${COLOR_SUFFIX}\n" exit -1 fi done