package rpc import ( "errors" "net" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" "mongo.games.com/goserver/core/logger" "mongo.games.com/game/db/proto/user" "mongo.games.com/game/db/rpc/server" "mongo.games.com/game/db/rpc/svc" ) // GrpcServer grpc服务 var GrpcServer *grpc.Server // GrpcClientConn grpc客户端连接 var GrpcClientConn *grpc.ClientConn // RunGrpcServer 启动grpc服务端 func RunGrpcServer(addr string) { GrpcServer = grpc.NewServer() registerGrpcServer() ln, err := net.Listen("tcp", addr) if err != nil { panic(errors.New("db grpc failed to listen: " + err.Error())) } err = GrpcServer.Serve(ln) if err != nil { panic(errors.New("db grpc failed to serve: " + err.Error())) } logger.Logger.Infof("db grpc start success") } // NewGrpcClientConn 创建grpc客户端连接 func NewGrpcClientConn(addr string) { var err error GrpcClientConn, err = grpc.NewClient(addr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { panic(errors.New("db grpc failed to dial: " + err.Error())) } registerGrpcClient() } // registerGrpcServer 注册grpc服务 func registerGrpcServer() { ctx := svc.NewServiceContext() user.RegisterUserServerServer(GrpcServer, server.NewUserServer(ctx)) } var UserClient user.UserServerClient func registerGrpcClient() { UserClient = user.NewUserServerClient(GrpcClientConn) }