Кажется, я ничего не понимаю о буферах протоколов, но это очень важный вопрос для меня и для моего реального использования.Как узнать, какое сообщение я получил, используя библиотеку протоколов протоколов?
При чтении документации о буферах протокола я не понимаю, как узнать, какое сообщение вы должны декодировать из потока? Все примеры о некотором определенном сообщении, но если вы определили несколько совершенно разных сообщений и хотите отправить эти сообщения между двумя процессами - как вы узнаете, какое сообщение вы только что получили?
Или, может быть, протокольные буферы не пытаются решить эту проблему и оставить этот вопрос для другого уровня абстракции?
Или, может быть, я должен упаковать сообщение в структуру так:
message wrapper {
required string message_name = 1;
string packed_message = 2;
}
И тогда я должен расшифровать сообщение в 2 этапе: получение message_name на первое, а затем декодировать реальный упакованное сообщение на втором этапе, должны не я?