| 123456789101112131415161718192021222324252627282930313233 | package mainimport (	"context"	"github.com/go-kit/kit/transport/grpc"	"github.com/longjoy/micro-go-course/section35/zipkin-kit/client"	"github.com/longjoy/micro-go-course/section35/zipkin-kit/pb"	"github.com/longjoy/micro-go-course/section35/zipkin-kit/string-service/endpoint")type grpcServer struct {	diff grpc.Handler}func (s *grpcServer) Diff(ctx context.Context, r *pb.StringRequest) (*pb.StringResponse, error) {	_, resp, err := s.diff.ServeGRPC(ctx, r)	if err != nil {		return nil, err	}	return resp.(*pb.StringResponse), nil}func NewGRPCServer(ctx context.Context, endpoints endpoint.StringEndpoints, serverTracer grpc.ServerOption) pb.StringServiceServer {	return &grpcServer{		diff: grpc.NewServer(			endpoints.StringEndpoint,			client.DecodeGRPCStringRequest,			client.EncodeGRPCStringResponse,			serverTracer,		),	}}
 |