59 lines
1.4 KiB
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)
|
|
}
|