2

是否有任何允许数据的数据序列化协议dynamic message typesTLV kind of encoding在查看 Protocol Buffer 和 Apache thrift 之后,他们似乎没有这样做。

我有一些要求,例如:如果我想发送一些数据结构:

  1. 它必须有某种方式对数据进行编码(例如在类型长度值编码中),以便接收器知道它的读取内容以及数据的排列方式(类似于数据树)。协议缓冲区说您必须跟踪您的数据接收方。

  2. 它还应该提供一些方法,以便我可以动态添加数据。我认为在 PB 和 Thrift 中他们需要提前知道所有数据,对吗?

唯一的替代方法是自己编码 TLV 格式的数据结构,然后使用 boost::serialization 之类的东西通过网络对其进行序列化?

4

2 回答 2

1

如果您将消息与DescirptorSet. 请参阅文档中的自描述消息。如果你真的想要,你甚至可以在运行时生成新的描述符(新的原型类型)。

也就是说,听起来您会更喜欢 JSON 或 MsgPack,它们是无模式编码。

于 2014-03-07T03:57:29.103 回答
0

您是否尝试过更通用的东西,例如 JSON 或 Binary JSON?它本身没有指定长度,但长度很容易发现。它也有大量的 C++ 库支持。

于 2014-03-06T17:02:37.523 回答