From 202811f3c66863042015840b06ae440ddd41d33e Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 13:32:40 +0800 Subject: [PATCH 01/14] groupID digitization --- internal/msg_gateway/gate/rpc_server.go | 7 ++++--- internal/rpc/group/group.go | 9 ++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 8b050476e..8d799ec20 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -209,11 +209,13 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online log.Debug(req.OperationID, "GetSingleUserMsgForPushPlatforms ", 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)) for _, v := range list { req.MsgData.MsgDataList = append(req.MsgData.MsgDataList, v) } replyBytes, err := r.encodeWsData(req.MsgData, req.OperationID) if err != nil { + log.Error(req.OperationID, "encodeWsData failed ", req.MsgData.String()) continue } resultCode := sendMsgBatchToUser(userConnMap[platform], replyBytes.Bytes(), req, platform, v) @@ -227,7 +229,6 @@ func (r *RPCServer) OnlineBatchPushOneMsg(_ context.Context, req *pbRelay.Online } resp = append(resp, temp) } - } else { if utils.IsContainInt(platform, r.pushTerminal) { tempT.OnlinePush = true @@ -293,11 +294,11 @@ func sendMsgBatchToUser(conn *UserConn, bMsg []byte, in *pbRelay.OnlineBatchPush err := ws.writeMsg(conn, websocket.BinaryMessage, bMsg) if err != nil { log.NewError(in.OperationID, "PushMsgToUser is failed By Ws", "Addr", conn.RemoteAddr().String(), - "error", err, "senderPlatform", constant.PlatformIDToName(int(in.MsgData.SenderPlatformID)), "recvPlatform", RecvPlatForm, "args", in.String(), "recvID", RecvID) + "error", err, "senderPlatform", constant.PlatformIDToName(int(in.MsgData.SenderPlatformID)), "recv Platform", RecvPlatForm, "args", in.String(), "recvID", RecvID) ResultCode = -2 return ResultCode } else { - log.NewDebug(in.OperationID, "PushMsgToUser is success By Ws", "args", in.String(), "recvPlatForm", RecvPlatForm, "recvID", RecvID) + log.NewDebug(in.OperationID, "PushMsgToUser is success By Ws", "args", in.String(), "recv PlatForm", RecvPlatForm, "recvID", RecvID) ResultCode = 0 return ResultCode } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fb42fe609..79c186013 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -18,12 +18,12 @@ import ( pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" + "google.golang.org/grpc" + "math/big" "net" "strconv" "strings" "time" - - "google.golang.org/grpc" ) type groupServer struct { @@ -96,7 +96,10 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR groupId := req.GroupInfo.GroupID if groupId == "" { - groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) + groupId = utils.Md5(req.OperationID + strconv.FormatInt(time.Now().UnixNano(), 10)) + bi := big.NewInt(0) + bi.SetString(groupId[0:8], 16) + groupId = bi.String() } //to group groupInfo := db.Group{} From da573ac573f27b0608e1d67420645450fcd8a26e Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 15:37:24 +0800 Subject: [PATCH 02/14] log --- internal/msg_gateway/gate/rpc_server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 8d799ec20..86a25850d 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -205,6 +205,7 @@ 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) needPushMapList := r.GetSingleUserMsgForPushPlatforms(req.OperationID, req.MsgData, v, platformList) log.Debug(req.OperationID, "GetSingleUserMsgForPushPlatforms ", req.MsgData.Seq, v, platformList, len(needPushMapList)) for platform, list := range needPushMapList { From d49ceef6371743aa4f9463cb684b57d62f68d3a8 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 15:55:07 +0800 Subject: [PATCH 03/14] log --- internal/msg_gateway/gate/batch_push.go | 1 + internal/push/logic/push_to_client.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/batch_push.go b/internal/msg_gateway/gate/batch_push.go index 41c71c876..8f556e4d5 100644 --- a/internal/msg_gateway/gate/batch_push.go +++ b/internal/msg_gateway/gate/batch_push.go @@ -38,6 +38,7 @@ func (r *RPCServer) GetSingleUserMsgForPushPlatforms(operationID string, msgData user2PushMsg := make(map[int][]*sdk_ws.MsgData, 0) for _, v := range platformIDList { user2PushMsg[v] = r.GetSingleUserMsgForPush(operationID, msgData, pushToUserID, v) + log.Info(operationID, "GetSingleUserMsgForPush", msgData.Seq, pushToUserID, v, "len:", len(user2PushMsg[v])) } return user2PushMsg } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index f7636137c..81fb024ca 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -50,7 +50,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { log.Debug("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) for _, v := range grpcCons { msgClient := pbRelay.NewOnlineMessageRelayServiceClient(v) - reply, err := msgClient.SuperGroupOnlineBatchPushOneMsg(context.Background(), &pbRelay.OnlineBatchPushOneMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserIDList: []string{pushMsg.PushToUserID}}) + reply, err := msgClient.OnlineBatchPushOneMsg(context.Background(), &pbRelay.OnlineBatchPushOneMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserIDList: []string{pushMsg.PushToUserID}}) if err != nil { log.NewError("push data to client rpc err", pushMsg.OperationID, "err", err) continue From 16645bc568a4094705a7c13faf388040fb7fa5c7 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 17:37:31 +0800 Subject: [PATCH 04/14] batch build --- script/batch_build_all_service.sh | 56 +++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 script/batch_build_all_service.sh diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh new file mode 100644 index 000000000..689d5bf94 --- /dev/null +++ b/script/batch_build_all_service.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +source ./style_info.cfg +source ./path_info.cfg +source ./function.sh + +bin_dir="../bin" +logs_dir="../logs" +sdk_db_dir="../db/sdk/" +#Automatically created when there is no bin, logs folder +if [ ! -d $bin_dir ]; then + mkdir -p $bin_dir +fi +if [ ! -d $logs_dir ]; then + mkdir -p $logs_dir +fi +if [ ! -d $sdk_db_dir ]; then + mkdir -p $sdk_db_dir +fi + +#begin path +begin_path=$PWD + + +build_pid_array=() + +for ((i = 0; i < ${#service_source_root[*]}; i++)); do + cd $begin_path + service_path=${service_source_root[$i]} + cd $service_path + make install & + build_pid=$! + build_pid_array[i]=build_pid + if [ $? -ne 0 ]; then + echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" + exit -1 + else + echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" + fi +done + + +for ((i = 0; i < ${#service_source_root[*]}; i++)); do + wait build_pid_array[i] + stat=$? + if [ $stat == 0 ] + then + echo "Exit status - $stat" + else + echo "Exit status - $stat" + fi + + + + +#echo -e ${YELLOW_PREFIX}"all services build success"${COLOR_SUFFIX} From eaa416c3947d4093b32e8e54a2c94768956fecc1 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 17:39:58 +0800 Subject: [PATCH 05/14] batch build --- script/batch_build_all_service.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index 689d5bf94..ce92fc832 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -39,10 +39,12 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do fi done +echo "wait all build finish" for ((i = 0; i < ${#service_source_root[*]}; i++)); do wait build_pid_array[i] stat=$? + echo build_pid_array[i] " " $stat if [ $stat == 0 ] then echo "Exit status - $stat" From 832f9c042d2aadfe4af7ddb093f9952168e89cef Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 17:42:45 +0800 Subject: [PATCH 06/14] batch build --- script/batch_build_all_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index ce92fc832..aa59f5097 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -51,7 +51,7 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do else echo "Exit status - $stat" fi - +done From 5cb907b0f1a0a3b21cad24995e26fda0ee94d9a9 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 17:49:00 +0800 Subject: [PATCH 07/14] batch build --- script/batch_build_all_service.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index aa59f5097..a3bba7ee4 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -42,9 +42,11 @@ done echo "wait all build finish" for ((i = 0; i < ${#service_source_root[*]}; i++)); do - wait build_pid_array[i] + + echo "wait pid: " ${build_pid_array[i]} + wait ${build_pid_array[i]} stat=$? - echo build_pid_array[i] " " $stat + echo ${build_pid_array[i]} " " $stat if [ $stat == 0 ] then echo "Exit status - $stat" From df7d2b54bd41904a2397e39a143b7aa9fdb6e199 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 17:53:34 +0800 Subject: [PATCH 08/14] batch build --- script/batch_build_all_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index a3bba7ee4..7cceed90f 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -30,7 +30,7 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do cd $service_path make install & build_pid=$! - build_pid_array[i]=build_pid + build_pid_array[i]=$build_pid if [ $? -ne 0 ]; then echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" exit -1 From c9b25f73d3efb35f310e80c03e9ee8bc76961e46 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 18:00:04 +0800 Subject: [PATCH 09/14] batch build --- script/batch_build_all_service.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index 7cceed90f..fe6c6f264 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -41,6 +41,7 @@ done echo "wait all build finish" +success_num = 0 for ((i = 0; i < ${#service_source_root[*]}; i++)); do echo "wait pid: " ${build_pid_array[i]} @@ -49,12 +50,19 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do echo ${build_pid_array[i]} " " $stat if [ $stat == 0 ] then - echo "Exit status - $stat" + echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" + exit -1 + else - echo "Exit status - $stat" + echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" + success_num++ fi done +echo "success_num" $success_num +echo "service_source_root" ${#service_source_root[*]} - -#echo -e ${YELLOW_PREFIX}"all services build success"${COLOR_SUFFIX} +if [ $success_num == ${#service_source_root[*]} ] +then + echo -e ${YELLOW_PREFIX}"all services build success"${COLOR_SUFFIX} +fi From 843a9cedaf88d5bde58389de631c08ff62b58d2e Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 18:05:36 +0800 Subject: [PATCH 10/14] batch build --- script/batch_build_all_service.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index fe6c6f264..936c6339a 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -43,19 +43,18 @@ echo "wait all build finish" success_num = 0 for ((i = 0; i < ${#service_source_root[*]}; i++)); do - - echo "wait pid: " ${build_pid_array[i]} + echo "wait pid: " ${build_pid_array[i]} ${service_names[$i]} wait ${build_pid_array[i]} stat=$? echo ${build_pid_array[i]} " " $stat if [ $stat == 0 ] then - echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" - exit -1 + echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" + success_num++ else - echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" - success_num++ + echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" + exit -1 fi done From 0aa19ed1b0e692150c9ce77496ae26e67c2ef4c8 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 18:07:49 +0800 Subject: [PATCH 11/14] batch build --- script/batch_build_all_service.sh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index 936c6339a..1bfc4ad93 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -28,18 +28,13 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do cd $begin_path service_path=${service_source_root[$i]} cd $service_path - make install & + make install > /dev/null & build_pid=$! build_pid_array[i]=$build_pid - if [ $? -ne 0 ]; then - echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" - exit -1 - else - echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" - fi done -echo "wait all build finish" + +echo "wait all build finish....." success_num = 0 for ((i = 0; i < ${#service_source_root[*]}; i++)); do From 26353fd28fc93378e5ba330fbd959c834f27fed8 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 18:08:33 +0800 Subject: [PATCH 12/14] batch build --- script/batch_build_all_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index 1bfc4ad93..c96b9dbe2 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -45,7 +45,7 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do if [ $stat == 0 ] then echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" - success_num++ + success_num = $success_num +1 else echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n" From 915539ca0f4e18b2d15156e1f145f82afc82358b Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 18:10:11 +0800 Subject: [PATCH 13/14] batch build --- script/batch_build_all_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index c96b9dbe2..b48bd2436 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -36,7 +36,7 @@ done echo "wait all build finish....." -success_num = 0 +success_num=0 for ((i = 0; i < ${#service_source_root[*]}; i++)); do echo "wait pid: " ${build_pid_array[i]} ${service_names[$i]} wait ${build_pid_array[i]} From f51a074f867cec1e42904ee12513158099f42bba Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 10 Jun 2022 18:11:46 +0800 Subject: [PATCH 14/14] batch build --- script/batch_build_all_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/batch_build_all_service.sh b/script/batch_build_all_service.sh index b48bd2436..d0ea15260 100644 --- a/script/batch_build_all_service.sh +++ b/script/batch_build_all_service.sh @@ -45,7 +45,7 @@ for ((i = 0; i < ${#service_source_root[*]}; i++)); do if [ $stat == 0 ] then echo -e "${GREEN_PREFIX}${service_names[$i]} successfully be built ${COLOR_SUFFIX}\n" - success_num = $success_num +1 + success_num=$success_num+1 else echo -e "${RED_PREFIX}${service_names[$i]} build failed ${COLOR_SUFFIX}\n"