Protobuf:发送空的Protobuf对象时,是否会将其转换为空对象?

问题描述

我是protobuf的新用户。 我发现了一些奇怪的行为。

我有两个通过protobuf进行通信的服务。 当第一个服务向另一个服务发送一个空的protobuf对象时,另一个服务不会得到一个空的protobuf,而是一个空。

您经历过吗?如果是,您知道如何解决吗?我希望其他服务获得一个空对象。

解决方法

Protobuf没有null的概念;它可以发送零长度的有效载荷,并且应该反序列化为一个空对象(因为一个空对象的长度为零),但是某些实现有可能返回null。坦白地说,我认为这是反序列化程序中的一个错误,但是完整的最小化复制会有所帮助。