0
そこproto3
にはextend
ではありませんので、私はgoogle.protobuf.Any
タイプのメッセージをベースメッセージを組み合わせて、それはバイナリの長さがファイルの.javaproto3で拡張を実装する方法はありますか?
message TradeMessage {
google.protobuf.Any message = 1;
string code = 2;
}
message Connect {
int32 seq = 1;
string appid = 2;
string clientid = 3;
string ver = 4;
}
...
ファイル.proto
長すぎるだから
TradeProtocol.Connect inner = TradeProtocol.Connect.newBuilder()
.setSeq(1)
.setAppid("test")
.build();
TradeProtocol.TradeMessage packet = TradeProtocol.TradeMessage.newBuilder()
.setMessage(Any.pack(inner))
.setCode(2)
.build();
サービスはパケットをクライアントに送信し、クライアントはTradeMessageのベースとなるすべてのメッセージをデコードできますが、問題は内部の長さは8バイト、パケットの長さは56バイトです。同じ機能を実装するには、proto2
の実装はちょうど10バイト増えるので、proto3
に拡張機能を実装する方法はありますか、それともパケットの長さを短くするのですか?おかげ