diff --git a/cmd/push/main.go b/cmd/push/main.go index 6a39c283a..a89a3c111 100644 --- a/cmd/push/main.go +++ b/cmd/push/main.go @@ -1,17 +1,22 @@ package main import ( + "OpenIM/internal/push" "OpenIM/pkg/common/cmd" + "OpenIM/pkg/common/config" "fmt" "os" ) func main() { - pushCmd := cmd.NewPushCmd() + pushCmd := cmd.NewRpcCmd() pushCmd.AddPortFlag() pushCmd.AddPrometheusPortFlag() - pushCmd.AddPush() - if err := pushCmd.Execute(); err != nil { + if err := pushCmd.Exec(); err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + if err := pushCmd.StartSvr(config.Config.RpcRegisterName.OpenImPushName, push.Start); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/cmd/rpc/auth/main.go b/cmd/rpc/auth/main.go index 634162e4b..f1417366f 100644 --- a/cmd/rpc/auth/main.go +++ b/cmd/rpc/auth/main.go @@ -9,10 +9,10 @@ import ( ) func main() { - authCmd := cmd.NewAuthCmd() + authCmd := cmd.NewRpcCmd() authCmd.AddPortFlag() authCmd.AddPrometheusPortFlag() - if err := authCmd.Execute(); err != nil { + if err := authCmd.Exec(); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/cmd/rpc/conversation/main.go b/cmd/rpc/conversation/main.go index 4e5006815..aa81a8de1 100644 --- a/cmd/rpc/conversation/main.go +++ b/cmd/rpc/conversation/main.go @@ -12,7 +12,11 @@ func main() { rpcCmd := cmd.NewRpcCmd() rpcCmd.AddPortFlag() rpcCmd.AddPrometheusPortFlag() - if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImConversationName, conversation.Start); err != nil { + if err := rpcCmd.Exec(); err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImConversationName, conversation.Start); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/cmd/rpc/friend/main.go b/cmd/rpc/friend/main.go index caf5750bf..7be637804 100644 --- a/cmd/rpc/friend/main.go +++ b/cmd/rpc/friend/main.go @@ -12,7 +12,11 @@ func main() { rpcCmd := cmd.NewRpcCmd() rpcCmd.AddPortFlag() rpcCmd.AddPrometheusPortFlag() - if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImFriendName, friend.Start); err != nil { + if err := rpcCmd.Exec(); err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImFriendName, friend.Start); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/cmd/rpc/group/main.go b/cmd/rpc/group/main.go index 1a4fa1355..0a96d28d4 100644 --- a/cmd/rpc/group/main.go +++ b/cmd/rpc/group/main.go @@ -12,7 +12,11 @@ func main() { rpcCmd := cmd.NewRpcCmd() rpcCmd.AddPortFlag() rpcCmd.AddPrometheusPortFlag() - if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImGroupName, friend.Start); err != nil { + if err := rpcCmd.Exec(); err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImGroupName, friend.Start); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/cmd/rpc/msg/main.go b/cmd/rpc/msg/main.go index be88b22a8..84bc8178a 100644 --- a/cmd/rpc/msg/main.go +++ b/cmd/rpc/msg/main.go @@ -12,7 +12,11 @@ func main() { rpcCmd := cmd.NewRpcCmd() rpcCmd.AddPortFlag() rpcCmd.AddPrometheusPortFlag() - if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImMsgName, msg.Start); err != nil { + if err := rpcCmd.Exec(); err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImMsgName, msg.Start); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/cmd/rpc/third/main.go b/cmd/rpc/third/main.go index 20dcbb421..3360bbd14 100644 --- a/cmd/rpc/third/main.go +++ b/cmd/rpc/third/main.go @@ -12,7 +12,11 @@ func main() { rpcCmd := cmd.NewRpcCmd() rpcCmd.AddPortFlag() rpcCmd.AddPrometheusPortFlag() - if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImThirdName, third.Start); err != nil { + if err := rpcCmd.Exec(); err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImThirdName, third.Start); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/cmd/rpc/user/main.go b/cmd/rpc/user/main.go index 9f82776b2..6438280d1 100644 --- a/cmd/rpc/user/main.go +++ b/cmd/rpc/user/main.go @@ -12,7 +12,11 @@ func main() { rpcCmd := cmd.NewRpcCmd() rpcCmd.AddPortFlag() rpcCmd.AddPrometheusPortFlag() - if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImUserName, user.Start); err != nil { + if err := rpcCmd.Exec(); err != nil { + fmt.Println(err.Error()) + os.Exit(1) + } + if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImUserName, user.Start); err != nil { fmt.Println(err.Error()) os.Exit(1) } diff --git a/internal/msgtransfer/init.go b/internal/msgtransfer/init.go index 9b5b4b6cc..dd154a3c4 100644 --- a/internal/msgtransfer/init.go +++ b/internal/msgtransfer/init.go @@ -67,6 +67,7 @@ func (m *MsgTransfer) initPrometheus() { func (m *MsgTransfer) Start(prometheusPort int) error { var wg sync.WaitGroup wg.Add(4) + fmt.Println("start msg transfer", "prometheusPort:", prometheusPort) if config.Config.ChatPersistenceMysql { go m.persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(m.persistentCH) } else { diff --git a/internal/startrpc/start.go b/internal/startrpc/start.go index c65ec398f..18fe7cef4 100644 --- a/internal/startrpc/start.go +++ b/internal/startrpc/start.go @@ -13,10 +13,11 @@ import ( "github.com/OpenIMSDK/openKeeper" grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus" "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" "net" ) -func start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options []grpc.ServerOption) error { +func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error { fmt.Println("start", rpcRegisterName, "rpc server, port: ", rpcPort, "prometheusPort:", prometheusPort, ", OpenIM version: ", config.Version) log.NewPrivateLog(constant.LogFileName) listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", config.Config.ListenIP, rpcPort)) @@ -47,19 +48,24 @@ func start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(c } srv := grpc.NewServer(options...) defer srv.GracefulStop() - err = zkClient.Register(rpcRegisterName, registerIP, rpcPort) + err = zkClient.Register(rpcRegisterName, registerIP, rpcPort, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { return utils.Wrap1(err) } - if config.Config.Prometheus.Enable && prometheusPort != 0 { - err := prome.StartPrometheusSrv(prometheusPort) - if err != nil { - return err + go func() { + if config.Config.Prometheus.Enable && prometheusPort != 0 { + if err := prome.StartPrometheusSrv(prometheusPort); err != nil { + panic(err.Error()) + } } + }() + err = srv.Serve(listener) + if err != nil { + return utils.Wrap1(err) } return rpcFn(zkClient, srv) } -func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error { - return start(rpcPort, rpcRegisterName, prometheusPort, rpcFn, options) -} +//func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error { +// return start(rpcPort, rpcRegisterName, prometheusPort, rpcFn, options) +//} diff --git a/pkg/common/cmd/push.go b/pkg/common/cmd/push.go deleted file mode 100644 index 432a49720..000000000 --- a/pkg/common/cmd/push.go +++ /dev/null @@ -1,22 +0,0 @@ -package cmd - -import ( - "OpenIM/internal/push" - "OpenIM/internal/startrpc" - "OpenIM/pkg/common/config" - "github.com/spf13/cobra" -) - -type PushCmd struct { - *AuthCmd -} - -func NewPushCmd() *PushCmd { - return &PushCmd{NewAuthCmd()} -} - -func (r *PushCmd) AddPush() { - r.Command.RunE = func(cmd *cobra.Command, args []string) error { - return startrpc.Start(r.getPortFlag(cmd), config.Config.RpcRegisterName.OpenImPushName, r.getPrometheusPortFlag(cmd), push.Start) - } -} diff --git a/pkg/common/cmd/root.go b/pkg/common/cmd/root.go index c2f43f266..25b1ec485 100644 --- a/pkg/common/cmd/root.go +++ b/pkg/common/cmd/root.go @@ -23,23 +23,11 @@ func NewRootCmd() (rootCmd *RootCmd) { }, } rootCmd.Command = c - rootCmd.init() + rootCmd.addConfFlag() return rootCmd } -func (r *RootCmd) AddRunE(f func(cmd RootCmd) error) { - r.Command.RunE = func(cmd *cobra.Command, args []string) error { - return f(*r) - } -} - -func (r *RootCmd) AddRpc(f func(port, prometheusPort int) error) { - r.Command.RunE = func(cmd *cobra.Command, args []string) error { - return f(r.getPortFlag(cmd), r.getPrometheusPortFlag(cmd)) - } -} - -func (r *RootCmd) init() { +func (r *RootCmd) addConfFlag() { r.Command.Flags().StringP(constant.FlagConf, "c", "", "Path to config file folder") } diff --git a/pkg/common/cmd/rpc.go b/pkg/common/cmd/rpc.go index 3e7ee4f30..a5a4e80c7 100644 --- a/pkg/common/cmd/rpc.go +++ b/pkg/common/cmd/rpc.go @@ -7,16 +7,16 @@ import ( "google.golang.org/grpc" ) -type AuthCmd struct { +type RpcCmd struct { *RootCmd } -func NewAuthCmd() *AuthCmd { - authCmd := &AuthCmd{NewRootCmd()} +func NewRpcCmd() *RpcCmd { + authCmd := &RpcCmd{NewRootCmd()} return authCmd } -func (a *AuthCmd) Exec() error { +func (a *RpcCmd) Exec() error { a.Command.Run = func(cmd *cobra.Command, args []string) { a.port = a.getPortFlag(cmd) a.prometheusPort = a.getPrometheusPortFlag(cmd) @@ -24,6 +24,6 @@ func (a *AuthCmd) Exec() error { return a.Execute() } -func (a *AuthCmd) StartSvr(name string, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error { +func (a *RpcCmd) StartSvr(name string, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error { return startrpc.Start(a.GetPortFlag(), name, a.GetPrometheusPortFlag(), rpcFn) } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index ed0f5a0d9..11c358ecf 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -515,7 +515,6 @@ func (c *config) initConfig(config interface{}, configName, configFolderPath str return err } configPath = filepath.Join(Root, "config", configName) - fmt.Println("use", configPath) } else { Root = filepath.Dir(configPath) } diff --git a/pkg/common/db/table/relation/chatlog.go b/pkg/common/db/table/relation/chatlog.go index dcf39aca5..5d04edbe9 100644 --- a/pkg/common/db/table/relation/chatlog.go +++ b/pkg/common/db/table/relation/chatlog.go @@ -1,7 +1,6 @@ package relation import ( - "gorm.io/gorm" "time" pbMsg "OpenIM/pkg/proto/msg" @@ -27,7 +26,6 @@ type ChatLogModel struct { SendTime time.Time `gorm:"column:send_time;index:sendTime;index:content_type,priority:1;index:session_type,priority:1;index:recv_id,priority:1;index:send_id,priority:1" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` - DB *gorm.DB } func (ChatLogModel) TableName() string { diff --git a/script/path_info.cfg b/script/path_info.cfg index 5cb47772f..5ada746df 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -19,7 +19,7 @@ msg_transfer_source_root="../cmd/msgtransfer/" msg_transfer_service_num=4 -sdk_server_name="sdk_ws_server" +sdk_server_name="open_im_sdk_server" sdk_server_binary_root="../bin/" sdk_server_source_root="../cmd/Open-IM-SDK-Core/" diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index e10ff6bf8..ab9c6eb08 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -24,7 +24,7 @@ fi #Waiting port recycling sleep 1 cd ${sdk_server_binary_root} - nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdkws_port ${sdkws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & + nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdkws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & #Check launched service process sleep 3