Я хотел бы отправить поток различных протобуф-сообщений по проводам и иметь возможность различать их по прибытии по мере их поступления.
Допустим, у меня есть * .proto, подобный этому:
message Book {
//...
}
message BlueRay{
//...
}
А затем и на стороне отправителя я сериализирую, скажем, следующую последовательность (псевдокод на C #):
Book1.WriteDelimitedTo(myStream);
BlueRay1.WriteDelimitedTo(myStream);
Book2.WriteDelimitedTo(myStream);
Как узнать порядок / типы сообщений, которые яполучать на стороне приемника? (Контракт доступен как на стороне отправителя, так и на стороне получателя). В зависимости от состояния моего отправителя, я не могу предположить / сказать, что будет отправлено и в каком порядке ...
Я понял, что нетвстроенный способ сделать это, как указано в документации , но, например, для размера сообщения был вспомогательный метод (вспомогательный метод CD API WriteDelimited для встраивания размера).
Какя могу сделать, чтобы получить / отобразить тип полученного сообщения?
Мой сервер будет написан на заданном языке (на самом деле C #), но мои клиенты должны быть "реализуемыми" в любой цели с поддержкой protobuf, поэтому я не хочу устанавливать что-то, что будет сериализовать C # / CLRвещи между ...
Может быть, я использую protobuf странным образом? Я пытаюсь настроить своего рода протокол.