github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/project_generator/resources/server.grpc.go.tmpl (about) 1 {{- /*gotype: github.com/yoogoc/kratos-scaffold/project_generator.ServerTmpl*/ -}} 2 package server 3 4 import ( 5 "github.com/go-kratos/kratos/v2/log" 6 "github.com/go-kratos/kratos/v2/middleware/logging" 7 "github.com/go-kratos/kratos/v2/middleware/recovery" 8 "github.com/go-kratos/kratos/v2/transport/grpc" 9 "{{.AppPkgPath}}/internal/conf" 10 ) 11 12 // NewGRPCServer new a gRPC server. 13 func NewGRPCServer(c *conf.Server, logger log.Logger) *grpc.Server { 14 var opts = []grpc.ServerOption{ 15 grpc.Middleware( 16 recovery.Recovery(), 17 // tracing.Server( 18 // tracing.WithTracerProvider(tp)), 19 logging.Server(logger), 20 ), 21 } 22 if c.Grpc.Network != "" { 23 opts = append(opts, grpc.Network(c.Grpc.Network)) 24 } 25 if c.Grpc.Addr != "" { 26 opts = append(opts, grpc.Address(c.Grpc.Addr)) 27 } 28 if c.Grpc.Timeout != nil { 29 opts = append(opts, grpc.Timeout(c.Grpc.Timeout.AsDuration())) 30 } 31 srv := grpc.NewServer(opts...) 32 return srv 33 }