使用Protobufs的批处理技术

gor*_*ros 7 serialization http protocol-buffers protobuf-net protobuf-java

是否有一种有效的技术可以通过HTTP发送批处理不同的Protobuf事件?

目标是在一个请求中列出多种类型的Protobuf消息。我的一个想法是将消息分成小数组,然后指定消息的类型,以便能够在服务器上反序列化它们。

use*_*422 5

您可以将某些Any消息类型与 结合使用repeated,如下所示:

message Any {
    string type_url = 1;
    bytes value = 2;
}

message Envelope {
    repeated Any events = 1;
}
Run Code Online (Sandbox Code Playgroud)

然后,在您的代码中:

  • 序列化时,必须type_url根据序列化的消息类型进行设置value
  • 反序列化时,必须阅读type_url以了解 中包含哪种类型value,并进行相应的反序列化

上面的示例重现了google/protobuf/any此处记录的 : https ://developers.google.com/protocol-buffers/docs/proto3#any