Как я могу узнать, какое сообщение я получил при использовании библиотеки Protocol Buffers? - PullRequest
4 голосов
/ 09 ноября 2010

Кажется, я не понимаю чего-то простого в отношении буферов протокола, но это очень важный вопрос для меня и для моего реального варианта использования.

Читая документацию о буферах протоколов, я не понимаю, как узнать, какое сообщение вы должны декодировать из потока?Все примеры о некотором определенном сообщении, но если вы определили несколько совершенно разных сообщений и хотите отправить эти сообщения между двумя процессами - как вы узнаете, какое сообщение вы только что получили?

Или, возможно, буферы протокола делаютне пытаетесь решить эту проблему и оставить этот вопрос для другого уровня абстракции?

Или, может быть, я должен упаковать сообщение в структуру следующим образом:

message wrapper {
   required string message_name = 1;
   string packed_message = 2; 
}

А затем я должен декодировать сообщение в 2этапы: сначала получить message_name, а затем на втором этапе декодировать реальное упакованное сообщение, не так ли?

1 Ответ

4 голосов
/ 09 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...