game_sync/db/rpc/export.go

59 lines
1.4 KiB
Go

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)
}