2010-11-09 6 views
4

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

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

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

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

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

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

ответ

Смежные вопросы