You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

87 lines
2.2 KiB

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
}