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