我正在关注http://www.grpc.io/docs/tutorials/basic/node.html#try-it-out
中的教程我想测试grpc如何处理协议缓冲区中的未定义字段,因此我修改了route_guide_server.js第74行,以返回另一个字段test
feature = {
name: name,
location: point,
test: 'test'
};
return feature;
}
然后我在客户端遇到了这个错误
{ Error: .routeguide.Feature#test is not a field: undefined
这是预期的行为吗?根据我对protocol buffer doc的理解,未知字段应该简单地不是序列化而不是抛出错误?
答案 0 :(得分:0)
Protobuf仅在反序列化时删除字段,而不是序列化。如果您使客户端和服务器使用相同proto的略有不同版本,您可以更清楚地看到差异。客户端应该包含测试字段,但服务器不应该包含。