trong ngắn hạn, có cách nào để xác định một thông điệp protobuf có chứa một thông điệp kiểu tùy ý khác không? Một cái gì đó như:Protobuf: Làm tổ một thông báo về kiểu tùy ý
message OuterMsg {
required int32 type = 1;
required Message nestedMsg = 2; //Any sort of message can go here
}
Tôi nghi ngờ rằng có một cách để làm điều này bởi vì trong protobuf-triển khai khác nhau, các thông điệp biên soạn kéo dài từ một lớp học phổ biến Message
cơ sở.
Nếu tôi đoán tôi phải tạo một tin nhắn cơ sở chung cho tất cả các loại thông điệp như thế này:
message BaseNestedMessage {
extensions 1 to max;
}
và sau đó làm
message OuterMessage {
required int32 type = 1;
required BaseNestedMessage nestedMsg = 2;
}
Đây có phải là cách duy nhất để đạt được điều này?
Vì tôi không thể biết trước tất cả các thông báo có thể, tôi sẽ tìm giải pháp tuần tự riêng biệt, sử dụng trường 'byte', cảm ơn bạn – DeX3