From 304474a5e16bc80d181e7ad1325f0eef5d4bc547 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 3 Jan 2023 15:46:28 +0800 Subject: [PATCH] Error code standardization --- internal/fault_tolerant/conn.go | 95 +++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 internal/fault_tolerant/conn.go diff --git a/internal/fault_tolerant/conn.go b/internal/fault_tolerant/conn.go new file mode 100644 index 000000000..78fa03f99 --- /dev/null +++ b/internal/fault_tolerant/conn.go @@ -0,0 +1,95 @@ +package fault_tolerant + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + "Open_IM/pkg/utils" + "google.golang.org/grpc" + "strings" +) + +func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn { + rpcRegisterIP := config.Config.RpcRegisterIP + var err error + if config.Config.RpcRegisterIP == "" { + rpcRegisterIP, err = utils.GetLocalIP() + if err != nil { + log.Error(operationID, "GetLocalIP failed ", err.Error()) + return nil + } + } + + var configPortList []int + //1 + if config.Config.RpcRegisterName.OpenImUserName == serviceName { + configPortList = config.Config.RpcPort.OpenImUserPort + } + //2 + if config.Config.RpcRegisterName.OpenImFriendName == serviceName { + configPortList = config.Config.RpcPort.OpenImFriendPort + } + //3 + if config.Config.RpcRegisterName.OpenImMsgName == serviceName { + configPortList = config.Config.RpcPort.OpenImMessagePort + } + //4 + if config.Config.RpcRegisterName.OpenImPushName == serviceName { + configPortList = config.Config.RpcPort.OpenImPushPort + } + //5 + if config.Config.RpcRegisterName.OpenImRelayName == serviceName { + configPortList = config.Config.RpcPort.OpenImMessageGatewayPort + } + //6 + if config.Config.RpcRegisterName.OpenImGroupName == serviceName { + configPortList = config.Config.RpcPort.OpenImGroupPort + } + //7 + if config.Config.RpcRegisterName.OpenImAuthName == serviceName { + configPortList = config.Config.RpcPort.OpenImAuthPort + } + //10 + if config.Config.RpcRegisterName.OpenImOfficeName == serviceName { + configPortList = config.Config.RpcPort.OpenImOfficePort + } + //11 + if config.Config.RpcRegisterName.OpenImOrganizationName == serviceName { + configPortList = config.Config.RpcPort.OpenImOrganizationPort + } + //12 + if config.Config.RpcRegisterName.OpenImConversationName == serviceName { + configPortList = config.Config.RpcPort.OpenImConversationPort + } + //13 + if config.Config.RpcRegisterName.OpenImCacheName == serviceName { + configPortList = config.Config.RpcPort.OpenImCachePort + } + //14 + if config.Config.RpcRegisterName.OpenImRealTimeCommName == serviceName { + configPortList = config.Config.RpcPort.OpenImRealTimeCommPort + } + if len(configPortList) == 0 { + log.Error(operationID, "len(configPortList) == 0 ") + return nil + } + target := rpcRegisterIP + ":" + utils.Int32ToString(int32(configPortList[0])) + log.Info(operationID, "rpcRegisterIP ", rpcRegisterIP, " port ", configPortList, " grpc target: ", target, " serviceName: ", serviceName) + conn, err := grpc.Dial(target, grpc.WithInsecure()) + if err != nil { + log.Error(operationID, "grpc.Dail failed ", err.Error()) + return nil + } + log.NewDebug(operationID, utils.GetSelfFuncName(), serviceName, conn) + return conn +} + +func GetDefaultConn(serviceName string, operationID string) *grpc.ClientConn { + con := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), serviceName, operationID, config.Config.Etcd.UserName, config.Config.Etcd.Password) + if con != nil { + return con + } + log.NewWarn(operationID, utils.GetSelfFuncName(), "conn is nil !!!!!", serviceName) + con = GetConfigConn(serviceName, operationID) + return con +}