問題タブ [grpc-node]

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 に答える
568 参照

proxy - Node.js の Google GAX / gRPC が HTTP/S プロキシで機能しない

Google の Dialogflow v2 Node.js SDK から Dialogflow SDK サンプルを動作させようとしています。私は node.jsv8.10.0を、dialogflow node.js SDK version で使用しています0.5.0企業の http/s プロキシの背後から「Detect Intent」サンプルを実行しようとすると、この問題が発生します。

ここでこの投稿に出くわしました: https://medium.com/google-cloud/accessing-google-cloud-apis-through-a-proxy-fe46658b5f2a非常にJava指向のように見えましたが、環境変数GRPC_PROXY_EXPを設定することを提案しましたgRPC 呼び出しをプロキシの背後で機能させるため。ノードを実行していたシェルで環境変数を設定export GRPC_PROXY_EXP="$https_proxy"し、同じ問題でサンプルを再度実行しようとしました。$http_proxymy ,$https_proxy変数は同じであることに注意してください。

プロキシなしで wifi ネットワークに接続すると、同じマシンから同じサンプルが動作します。パケット分析は、tcpdump使用中の 2 つの TCP 接続 (個別のポート) があることを示しています。2 番目の接続は、 (最初の TCP 接続と同様に) CLIENT_HELLO最初に認証して HTTPS プロキシにメッセージを送信する必要があるときに、すぐに TLS メッセージを開始します。CONNECT

何か不足していますか、それともダイアログフロー (google-gax / grpc) ノード ライブラリの問題ですか?

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

node.js - nodejs grpc サーバーで圧縮を有効にする

grpc-nodejs サーバーで圧縮を有効にする方法はありますか?

圧縮されたデータを圧縮/解凍できますが、応答を返すときに圧縮できないため、実装することは可能のようです。

テスト用の nodejs サーバーを起動し、python クライアントを使用して対話しました。転送されたバイト数を取得するためにサーバーとクライアントの間の対話を MITM で編集し、nc圧縮の効果を確認しました。

Python クライアント経由でリクエストを行いながらメタデータを送信'grpc.default_compression_algorithm'したところ、クライアントから送信されたデータは圧縮されていましたが、サーバーから返されたデータは圧縮されていませんでした。( sent 815, rcvd 300324echo grpc サービスの場合)。

nodejs サーバー側でメタデータを設定しても役に立ちません。圧縮されていないデータが送信されます。

これが可能なはずだと思う理由は、圧縮されたリクエストを読み取ることができたからです。また、npm grpc パッケージは grpc バイナリのラッパーです。nm grpc_node.node | grep gzip返品の実行