問題タブ [grpc-web]

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.

0 投票する
1 に答える
809 参照

protocol-buffers - GRPC: ブラウザーとサーバーの間で proto.Message フィールドを使用して JSON を渡す

システム間で Message 値を含む JSON をやり取りするのに苦労しています。もう少し進んだが、まだそこにはいない。構造体がその方法のようですが、送信している構造体は完全に問題ないように見えますが、サーバーが受信すると空になります。

ResultWeb ブラウザー (grpc-web) から Python バックエンドに渡されます。Python バックエンドはResult、(保存するために) JSON にシリアル化し、再び戻す必要があります。

送信する前に確認するとreq.variables、実際にStruct正しいフィールドがすべて含まれていることがわかります。しかし、もう一方の端 (サーバー) が受信すると、それreq.variablesは空になりStructます。テスト目的で、obj単にを試してみました{'key': 'value'}が、結果は同じでした。

それで私は試しましたproto.google.protobuf.Struct.fromJavaScript

これは単純な場合obj(例: {"key": "val"}) に機能objしますが、プロト メッセージ フィールド (上記のような) がある場合は、次のようになります。

または、javascript で protobuf/json を使用してすべての問題を解決する代わりに、単にmap?

しかし?type?、値が何でもかまいません (proto.MessageX、文字列、ブール値など)。

変数で proto メッセージを使用したいと思います。protobuf/grpc を選択した理由はまさにこれで、完全なプラットフォーム全体で同じタイプを使用できるためですが、これがこの目標を妨げているようです。私は何か見落としてますか?あなたならどうしますか?

0 投票する
1 に答える
1406 参照

node.js - gRPC-web はサーバー側ストリーミングからのバイト データをどのように処理しますか?

grpc-web を使用してバックエンド grpc サービスからブラウザーにサンプル ビデオ ファイルを送信したいのですが、公式の hello world tutorialに基づいていくつかの調整を行いました。ところで、envoy の設定は何も変わっていません。ビデオ ファイルは 17 個のチャンクに分割されています。ブラウザで 17 個のメッセージを受信できますが、中には何もありません。データを取得するにはどうすればよいですか?

プロトブフの定義:

サーバー.js:

client.js:

とにかく、プロキシに問題がある場合に備えて、以下は私の envoy.yaml です。

サーバー側に記録されたバイト: ここに画像の説明を入力

およびブラウザのコンソール出力の下: ここに画像の説明を入力