也许这是个小问题,但是…
我有一个定义了一些消息(表)的flatbuffer模式。
enum EMessages : int
{
E_MSG_EVENT_SYSTEM_INFO = 0x8000,
E_MSG_EVENT_SYSTEM_ERROR = 0x8001,
}
table TMsgHeader
{
sessionRef : int;
transactionId : int;
status : EStatus;
source_id : string;
}
table MSG_EVENT_SYSTEM_INFO
{
opcode : EMessages = E_MSG_EVENT_SYSTEM_INFO;
header : TMsgHeader;
protocol_ver : int = 100;
}
table MSG_EVENT_SYSTEM_ERROR
{
opcode : EMessages = E_MSG_EVENT_SYSTEM_ERROR;
header : TMsgHeader;
error_no : int;
error_desc : string;
}
在接收端,我需要一种方法来检索操作码字段,以知道哪个消息是(对其进行反序列化)。
因为,由于每条消息的大小都不同,所以在发送的二进制缓冲区上,操作码字段永远不在同一位置。
是否有一些“最佳实践”适用于FlatBuffer?
我想避免将FB有效载荷封装到另一个附加操作码的消息中。