package main
import (
"context"
"fmt"
"log"
)
type UnaryHandler func(ctx context.Context, req interface{}) (interface{}, error)
type UnaryServerInterceptor func(ctx context.Context, req interface{}, handler UnaryHandler) (resp interface{}, err error)
func HelloInterceptor(ctx context.Context, req interface{}, handler UnaryHandler) (interface{}, error){
log.Println("hello")
resp, err := handler(ctx, req)
log.Println("see you")
return resp, err
}
func HelloInterceptor1(ctx context.Context, req interface{}, handler UnaryHandler) (interface{}, error){
log.Println("hello1")
resp, err := handler(ctx, req)
log.Println("see you1")
return resp, err
}
func ChainUnaryServer(interceptors ...UnaryServerInterceptor) UnaryServerInterceptor {
n := len(interceptors)
return func(ctx context.Context, req interface{}, handler UnaryHandler) (resp interface{}, err error) {
chainer := fun
grpc使用多个中间件的转换
最新推荐文章于 2024-03-26 09:34:47 发布