【问题标题】:Define all the fields in proto? Can it ignore undefined fields?定义proto中的所有字段?它可以忽略未定义的字段吗?
【发布时间】:2017-04-11 19:08:24
【问题描述】:

我正在学习http://www.grpc.io/docs/tutorials/basic/node.html#try-it-out的教程

我想测试 grpc 如何处理来自协议缓冲区的未定义字段,因此我修改了第 74 行的 route_guide_server.js,以返回一个附加字段 test

feature = {
    name: name,
    location: point,
    test: 'test'
  };
  return feature;
}

然后我在客户端收到此错误 { Error: .routeguide.Feature#test is not a field: undefined

这是预期的行为吗?根据protocol buffer doc 的理解,未知字段不应该被序列化而不是抛出错误?

【问题讨论】:

    标签: javascript node.js protocol-buffers grpc


    【解决方案1】:

    Protobuf 仅在反序列化时丢弃字段,而不是序列化。如果您让客户端和服务器使用相同原型的稍微不同的版本,您可以更清楚地看到差异。客户端应该包含测试字段,但服务器不应该。

    【讨论】:

      猜你喜欢
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 2011-05-23
      相关资源
      最近更新 更多