我正在拦截UNIX套接字上的原始gRPC请求/响应(使用cri-api的容器化套接字,使用eBPF来执行拦截),我想弄清楚正在发送/接收的内容。我可以访问用于使用.proto生成gRPC接口的gRPC plugin文件,因此应该可以这样做,但是由于我不属于gRPC连接,因此我不确定如何启动。 / p>
如何在golang中进行此操作?
答案 0 :(得分:0)
您如何获取原始消息以及在哪个网络层中以哪种格式显示?
答案 1 :(得分:-1)
https://godoc.org/google.golang.org/grpc#StreamInterceptor
https://godoc.org/google.golang.org/grpc#UnaryInterceptor
https://github.com/grpc-ecosystem/go-grpc-middleware
// GRPC handler
func (x *M) GRPCHanler(ctx context.Context, req *REQ) (rsp *RSP, eRR error) {
rsp = new(RSP)
method = "GRPCHanler"
log.Infof("GRPC-%s Request:%+v", method, req)
defer func() {
log.Infof("GRPC-%s Response:%+v", method, rsp)
if eRR != nil {
log.Errorf("GRPC-%s Error:%v", method,eRR)
}
// eRR = nil
}
// handler
}