2

次の2つのスキーマがあります。ソケット経由でデータを送信します。受信時に、どちらが送信されたかを判断する方法はありますか?

namespace Objects;
    table Login {
      email:string;
      password:string;
    }

    root_type Login;
    file_identifier "LOGN";

namespace Objects;
    table Register{
      email:string;
      password:string;
    }

    root_type Register;
    file_identifier "REGR";
4

2 に答える 2

1

一般に、いいえ、FlatBuffers は厳密に型指定されている (自己記述的ではない) ため、何を受け取っているかを知っておく必要があります。

しかし、あなたの質問がすでに示しているように、FlatBuffer バイナリにタグを付ける便利な方法はfile_identifier. BufferHasIdentifierまたは同じ名前の生成された関数のいずれかを使用してテストできます。

さまざまなメッセージを送信するためのより良いソリューションは、ユニオン機能を使用することです。

于 2016-02-15T05:39:58.233 に答える