問題タブ [proto3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Ruby (proto3) の gRPC では nil 値は許可されていません
こんにちは、gRPC Ruby プラグインを使用してサービスと通信しています。プロト定義には以下が含まれます (proto3):
しかし、id に nil を割り当てると、エラーがスローされます - 整数フィールドの期待値です。ただし、文字列の場合、nil 値は正常に機能します。整数/浮動小数点フィールドに nil 値を許可するにはどうすればよいですか?
c++ - Windows で C++ 用の proto3 ライブラリをビルドする
proto2 protobuf から .cc および .h ファイルを正常に生成しました。また、 https://github.com/google/protobuf/tree/v2.6.1/vsprojectsの指示に従って、リンク先の lib を作成しました。Visual Studio でいくつかのプロジェクトを作成し、住所録のサンプル用に 2 つの実行可能ファイルを作成することができました。すべてが宣伝どおりに機能します。
Objective-Cのサポートが必要になる可能性が高いため、proto3を検討しています。コンパイル済みのバイナリをダウンロードして .cc および .h ファイルを生成するのは簡単ですが、上記の手順を Windows で複製して、リンク先のライブラリを作成する方法がわかりません。他の誰かがそうすることができましたか?ありがとう。
c# - ネットワーク経由で Protobuf3 メッセージを受信する
私は、クライアント用の c# とサーバー用の c++ で Protobuf3 を利用しています。.proto は、対応する protoc3 コンパイラから生成されます。私は現在、クライアントから送信されたサーバー上の受信バイトを再解析して、元の google::protobuf::Message に戻す方法を見つけようとしています。私のC ++サーバー上のオブジェクト。
私のクライアントは C# で CodedOutputStream を送信しています:
これは機能しているようです。現在送信されているメッセージは、次のような単純な Ping メッセージです。
私の BaseMessage は次のようになります。
私の計画は、できればすべてのメッセージを BaseMessage から拡張して、最終的に特定のメッセージを識別できるようにすることです。解析と再解析を理解したら。
C++ サーバー側で受信したメッセージは次のようになります: \u0004\n\u0002\b
メッセージを受信すると、受信したバイトを解析しようとすることで CodedInputStream オブジェクトを使用して再解析しようとしています。
これは、メッセージを特定のメッセージに再解析するために実行する必要があるプロセスが少しわからないところです。すべてのメッセージを拡張する BaseMessage を利用すれば、特定のメッセージを識別できるので、どのメッセージを作成すればよいかがわかると思います。ただし、Ping メッセージになることがわかっているこの現在のテストでは、ParseFromCodedStream は元のメッセージを作成していないようです。私の推論は、qDebug() 中に pingMsg.base().size() が私の c# クライアントの送信段階で設定された正しい値ではないことに由来します。
c# - proto3 で小数を文字列として保存することの欠点は何ですか?
永続ストレージ システム内で Google のプロトコル バッファ ライブラリを使用しており、通貨の値を保持したいのですが、写真 (float/double) で提供される浮動小数点型が十分かどうかわかりません。すべての通貨値を文字列として保存し (例: 0.1 ではなく "0.10" を保存)、データを取得して演算を行う必要があるときに Convert.ToDecimal 関数を使用することの欠点はありますか?
android - proto3 ネストされたメッセージ作成エラー
上記のようなメッセージを作成しようとすると、エラー service_actions.proto:10:25: "com.sys.test.protocol.Action" は 1010 を内線番号として宣言しません。
そのようなタイプのメッセージを作成する方法についての提案。
grpc - マップ フィールドのキーは、float/double、bytes、またはメッセージ タイプにすることはできません
既存のサービスを grpc サービスに移行する予定です。そのため、サービスを proto 定義済みメッセージ タイプに変換する必要があります。応答には、customize オブジェクトをキーとしてマップがあります。
例:
公式ドキュメントでは、彼らは次のように述べています。
ここで、key_type は任意の整数型または文字列型 (つまり、浮動小数点型とバイトを除く任意のスカラー型) にすることができます。value_type は任意の型にすることができます
proto3 でオブジェクトキーマップをカスタマイズする別の方法はありますか?
python-3.5 - proto3 を使用して Python で gRPC サーバーを作成する方法は?
このhttp://www.grpc.io/docs/tutorials/basic/python.html#creating-the-serverとここの例によるとhttps://github.com/grpc/grpc/tree/v1.0.0/ examples/python/route_guide、ファイルを生成すると、名前が_pb2.py
付けられたいくつかのクラスが作成されます。ただし、生成されたファイルにはこのようなものは含まれていません。*Stub
*Servicer
_pb2.py
これが私の_pb2.py
ファイルを生成する方法です:
これらのクラスが生成されないことを意味する proto3 について何か特別なことはありますか? または、protoc
私が行方不明のフラグですか?gRPC サーバーの作成方法がわかりません。
python - ProtoBuf 値がデフォルトを使用しているかどうかをテストする
ProtoBuf オブジェクトがあります。特定のフィールドがデフォルトを使用しているか、明示的に指定されているかを検出したいと思います。
使用するHasField
と が返されますがTrue
、明らかにそうではありません。
文字列表現はz
、デフォルト値を使用していることを認識しているようです。どうすればこれを自分で検出できますか?