// Code generated by protoc-gen-slc. DO NOT EDIT. package server import ( pb "bsm/full/module/social/feed/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" ) type Server struct { Grpc *grpc.Server Ctx context.Context Mux *gwRuntime.ServeMux grpcConns map[string]*grpc.ClientConn // 连接池 } func New(grpcServ *grpc.Server) *Server { // grpcServ 为空表示独立进程启动,自行创建 gRPC Server standalone := grpcServ == nil if standalone { grpcServ = grpc.NewServer() } srv := &Server{ Ctx: context.Background(), Grpc: grpcServ, grpcConns: make(map[string]*grpc.ClientConn), } // register service to grpc.Server pb.RegisterPostServer(srv.Grpc, NewPostServer()) pb.RegisterSettingServer(srv.Grpc, NewSettingServer()) pb.RegisterTagServer(srv.Grpc, NewTagServer()) pb.RegisterTimelineServer(srv.Grpc, NewTimelineServer()) if standalone { // 独立进程需自行初始化网关路由并注册 handler,否则 /feed.* 全部 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.RegisterPostHandlerServer(ctx, mux, NewPostServer()); err != nil { return err } if err := pb.RegisterSettingHandlerServer(ctx, mux, NewSettingServer()); err != nil { return err } if err := pb.RegisterTagHandlerServer(ctx, mux, NewTagServer()); err != nil { return err } return pb.RegisterTimelineHandlerServer(ctx, mux, NewTimelineServer()) }