fix version 1
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
pb "bsm/full/module/social/group/pb"
|
||||
"context"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/printer"
|
||||
gwRuntime "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/reflection"
|
||||
@@ -17,10 +18,17 @@ type Server struct {
|
||||
grpcConns map[string]*grpc.ClientConn // 连接池
|
||||
}
|
||||
|
||||
func New(addr string) *Server {
|
||||
// New 创建服务实例
|
||||
// grpcServ 为空表示独立进程启动,自行创建 gRPC Server 并初始化网关路由
|
||||
func New(grpcServ *grpc.Server) *Server {
|
||||
standalone := grpcServ == nil
|
||||
if standalone {
|
||||
grpcServ = grpc.NewServer()
|
||||
}
|
||||
|
||||
srv := &Server{
|
||||
Ctx: context.Background(),
|
||||
Grpc: grpc.NewServer(),
|
||||
Grpc: grpcServ,
|
||||
grpcConns: make(map[string]*grpc.ClientConn),
|
||||
}
|
||||
|
||||
@@ -28,7 +36,22 @@ func New(addr string) *Server {
|
||||
pb.RegisterBasicServer(srv.Grpc, NewBasicServer())
|
||||
pb.RegisterMemberServer(srv.Grpc, NewMemberServer())
|
||||
|
||||
reflection.Register(srv.Grpc)
|
||||
if standalone {
|
||||
// 独立进程需自行初始化网关路由并注册 handler,否则 /group.* 全部 404
|
||||
srv.Mux = gwRuntime.NewServeMux()
|
||||
if err := RegisterGateway(srv.Ctx, srv.Mux); err != nil {
|
||||
printer.Error(err.Error())
|
||||
}
|
||||
reflection.Register(srv.Grpc)
|
||||
}
|
||||
|
||||
return srv
|
||||
}
|
||||
|
||||
// RegisterGateway 注册各 service 的 gateway handler
|
||||
func RegisterGateway(ctx context.Context, mux *gwRuntime.ServeMux) error {
|
||||
if err := pb.RegisterBasicHandlerServer(ctx, mux, NewBasicServer()); err != nil {
|
||||
return err
|
||||
}
|
||||
return pb.RegisterMemberHandlerServer(ctx, mux, NewMemberServer())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user