【发布时间】:2019-10-04 11:56:07
【问题描述】:
在通过 HTTP 发送时,是否有一种有效的技术来批处理不同的 Protobuf 事件?
目标是在一个请求中包含多类型 Protobuf 消息的列表。我的一个想法是将消息分隔成小数组并指定它们的类型以便能够在服务器上反序列化它们。
【问题讨论】:
标签: http serialization protocol-buffers protobuf-net protobuf-java
在通过 HTTP 发送时,是否有一种有效的技术来批处理不同的 Protobuf 事件?
目标是在一个请求中包含多类型 Protobuf 消息的列表。我的一个想法是将消息分隔成小数组并指定它们的类型以便能够在服务器上反序列化它们。
【问题讨论】:
标签: http serialization protocol-buffers protobuf-net protobuf-java
你可以使用一些Any消息类型结合repeated,如下:
message Any {
string type_url = 1;
bytes value = 2;
}
message Envelope {
repeated Any events = 1;
}
然后,在您的代码中:
value中序列化的消息类型设置type_url
type_url才能知道value中包含的类型,并进行相应的反序列化上面的例子复制了google/protobuf/any,记录在这里:
https://developers.google.com/protocol-buffers/docs/proto3#any
【讨论】: