Files
full/module/social/group/internal/server/new.go
2026-09-22 21:15:34 +08:00

58 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Code generated by protoc-gen-slc. DO NOT EDIT.
package server
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"
)
type Server struct {
Grpc *grpc.Server
Ctx context.Context
Mux *gwRuntime.ServeMux
grpcConns map[string]*grpc.ClientConn // 连接池
}
// New 创建服务实例
// grpcServ 为空表示独立进程启动,自行创建 gRPC Server 并初始化网关路由
func New(grpcServ *grpc.Server) *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.RegisterBasicServer(srv.Grpc, NewBasicServer())
pb.RegisterMemberServer(srv.Grpc, NewMemberServer())
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())
}