package main import ( "flag" "fmt" "slowwild/internal/config" "slowwild/internal/handler" "slowwild/internal/middleware/auth" "slowwild/internal/server" "slowwild/internal/svc" "git.banshen.xyz/huangguangrong/slow_wild_protobuff/slowwild/slowwildserver" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/service" "github.com/zeromicro/go-zero/zrpc" "google.golang.org/grpc" "google.golang.org/grpc/reflection" ) var configFile = flag.String("f", "etc/slowwild.yaml", "the config file") func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) ctx := svc.NewServiceContext(c) s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { slowwildserver.RegisterSlowWildServerServer(grpcServer, server.NewSlowWildServerServer(ctx)) if c.Mode == service.DevMode || c.Mode == service.TestMode { reflection.Register(grpcServer) } }) defer s.Stop() // 添加用户认证拦截器 s.AddUnaryInterceptors(auth.NewUserAuthInterceptor()) // 开一个协程专门监听消息推送 go func(svc *svc.ServiceContext, conf config.Config) { listen := handler.NewListen(ctx) serviceGroup := service.NewServiceGroup() defer serviceGroup.Stop() for _, s := range listen.Services() { serviceGroup.Add(s) } serviceGroup.Start() }(ctx, c) fmt.Printf("Starting rpc server at %s...\n", c.ListenOn) s.Start() }