2

データを許可するデータシリアライゼーションプロトコルはありdynamic message typesますTLV kind of encodingか?、Protocol Buffer と Apache thrift を見た後、そうではないようです。

たとえば、次のような要件があります。データ構造を送信したい場合:

  1. データをエンコードする何らかの方法が必要です (Type length value encoding のように)。これにより、受信者は、その読み取り内容とデータがどのように配置されているか (データ ツリーのようなもの) を認識できます。プロトコル バッファーは、データを追跡する必要があることを示しています。レシーバー側。

  2. また、データを動的に追加できるように何らかの方法を提供する必要があります.PBとthriftでは、すべてのデータを事前に知る必要があると思いますが、正しいですか?

唯一の代替手段は、データ構造を独自に TLV 形式でエンコードし、boost::serialization のようなものを使用してネットワーク経由でシリアライズすることですか?

4

2 に答える 2

1

メッセージをDescirptorSet. ドキュメントの自己記述型メッセージを参照してください。本当に必要な場合は、実行時に新しい記述子 (新しいプロトタイプ型) を生成することもできます。

そうは言っても、スキーマのないエンコーディングである JSON または MsgPack の方が満足できるように思えます。

于 2014-03-07T03:57:29.103 に答える