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
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 grpc 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 |
|
}
|
|
|