package logic import ( "context" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "google.golang.org/protobuf/types/known/emptypb" "net" "sonet/api/gen/postal" "sonet/pkg/config" "sonet/pkg/grpc/discovery" "sonet/pkg/utils/logger" ) type PostalServer struct { postal.UnimplementedPostalServer } func NewPostalServer() *PostalServer { return &PostalServer{} } func (p *PostalServer) Run(conf config.GrpcConfig, postalRegister *discovery.Register) (err error) { server := grpc.NewServer( config.GetGrpcOptions(conf)..., ) if !conf.NoReflection { // 注册反射服务 reflection.Register(server) } postal.RegisterPostalServer(server, p) listen, err := net.Listen("tcp", conf.Address) if err != nil { return } // registry discovery regConf := conf.Register if regConf.Name == "" { regConf.Name = postal.Postal_ServiceDesc.ServiceName } if regConf.Addr == "" { regConf.Addr, err = discovery.RegisterAddress(listen) if err != nil { return } } if regConf.Ttl == 0 { regConf.Ttl = discovery.DefaultRegisterTTL } if err = postalRegister.Register(regConf, regConf.Ttl); err != nil { return } // run serve logger.Infof("%s server running %s\n", regConf.Name, listen.Addr().String()) err = server.Serve(listen) return } func (p *PostalServer) Deliver(ctx context.Context, deliver *postal.ReqDeliver) (*postal.ResDeliver, error) { return nil, nil } func (p *PostalServer) DeliverBatch(ctx context.Context, batch *postal.ReqDeliverBatch) (*postal.ResDeliver, error) { return nil, nil } func (p *PostalServer) DeliverGroup(ctx context.Context, group *postal.ReqDeliverGroup) (*postal.ResDeliver, error) { return nil, nil } func (p *PostalServer) GroupCreate(ctx context.Context, create *postal.ReqGroupCreate) (*postal.ResGroupCreate, error) { return nil, nil } func (p *PostalServer) GroupJoin(ctx context.Context, join *postal.ReqGroupJoin) (*emptypb.Empty, error) { return nil, nil } func (p *PostalServer) GroupLeave(ctx context.Context, leave *postal.ReqGroupLeave) (*emptypb.Empty, error) { return nil, nil } func (p *PostalServer) GroupDissolve(ctx context.Context, dissolve *postal.ReqGroupDissolve) (*emptypb.Empty, error) { return nil, nil }