为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 gRPC 流拦截器中获取消息值

如何在 gRPC 流拦截器中获取消息值

Go
开心每一天1111 2022-11-28 14:40:15
我在服务器中实现了一个 gRPC 流拦截器,如下所示:// Service define:// rpc searchProducts(google.protobuf.StringValue) returns (stream Product);func (w *wrappedStream) RecvMsg(m interface{}) error {    log.Printf("%T, %v", m, m)    return w.ServerStream.RecvMsg(m)}// Log print:// *wrapperspb.StringValue, 它可以%T正确使用打印消息类型,但是打印的消息值%v只是一个空白。我确定服务器收到了正确的消息,因为它回复了客户正确的信息。拦截器包装器RecvMsg在客户端也不工作。
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

w.ServerStream.RecvMsg(m)将数据解组为,只需在调用m后移动打印。RecvMsg()


func (w *wrappedStream) RecvMsg(m interface{}) error {

    err := w.ServerStream.RecvMsg(m)

    log.Printf("%T, %v", m, m)

    return err

}


查看完整回答
反对 回复 2022-11-28
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信