weil es keine extend
in proto3
, so kombiniere ich die Basis-Nachricht mit google.protobuf.Any
Typ Nachricht, aber es ist binäre Länge zu lang istGibt es eine Möglichkeit, Extend mit Proto3 zu implementieren?
.proto
message TradeMessage {
google.protobuf.Any message = 1;
string code = 2;
}
message Connect {
int32 seq = 1;
string appid = 2;
string clientid = 3;
string ver = 4;
}
...
Datei .java Datei
TradeProtocol.Connect inner = TradeProtocol.Connect.newBuilder()
.setSeq(1)
.setAppid("test")
.build();
TradeProtocol.TradeMessage packet = TradeProtocol.TradeMessage.newBuilder()
.setMessage(Any.pack(inner))
.setCode(2)
.build();
Service senden Paket an Client, Client kann alle Nachricht zu Base TradeMessage decodieren, das Problem ist die innere Länge ist 8 Bytes, während Paketlänge 56 Bytes ist. die gleiche Funktion implementieren proto2
's erweitern nur zehn weitere Bytes, so gibt es eine Möglichkeit zu implementieren, erweitern Funktion in proto3
oder die Paketlänge zu reduzieren? Dank