解码protobuf.js中的消息数组

时间:2018-06-28 21:23:56

标签: node.js protobuf.js

在我们的node.js应用程序中,我们需要反序列化一个Buffer,我们知道它包含多个对象。使用gateway1的方式是这样的:

protobuf-net

我现在正尝试对var stream = new MemoryStream(byteData); List<Schema.Object> objects = ProtoBuf.Serializer.Deserialize<List<Schema.Object>>(stream); 做同样的事情。我还没有找到创建模型对象数组的示例,仅创建了一个模型对象,如下所示:

protobuf.js

如何使用protobuf.js创建对象数组,而不是单个对象?

以下是数据的序列化方式:

const Object = root.lookupType('model.Object');
const message = Object.decode(byteData); //this creates one object but the buffer contains multiple objects

1 个答案:

答案 0 :(得分:0)

找到了解决方案。您可以用另一个包含重复条目的消息来包装对象。然后,当解码时,它将是一个对象数组。

在.proto文件中:

message ObjectCollection {
  repeated Object objects = 1;
}