クイックスタート

このガイドでは、簡単な動作例を使ってgRPC-Webを使い始めることができます。

クイックスタート

このガイドでは、簡単な動作例を使ってgRPC-Webを使い始めることができます。

前提条件

サンプルコードを入手する

サンプルコードは、grpc-webリポジトリの一部です。

  1. リポジトリをzipファイルとしてダウンロードして解凍するか、リポジトリをクローンします。

    $ git clone https://github.com/grpc/grpc-web
    
  2. リポジトリのルートディレクトリに移動します

    $ cd grpc-web
    

ブラウザからEchoのサンプルを実行する!

grpc-webディレクトリから

  1. 必要なパッケージとツールを取得します

    $ docker-compose pull prereqs node-server envoy commonjs-client
    
  2. バックグラウンドプロセスとしてサービスを起動します

    $ docker-compose up -d node-server envoy commonjs-client
    
  3. ブラウザから

    • localhost:8081/echotest.htmlにアクセスしてください。
    • テキスト入力ボックスに「Hello」などのメッセージを入力します。
    • 送信ボタンを押します。

    入力ボックスの下にサーバーがあなたのメッセージをエコーバックしているのがわかります。

おめでとうございます!gRPCを使用してクライアントサーバーアプリケーションを実行しました。

完了したら、次のコマンドを実行して、以前に起動したサービスをシャットダウンしてください。

$ docker-compose down

何が起こっているのか?

このサンプルアプリには、3つの主要なコンポーネントがあります。

  1. node-serverは、Nodeで実装された標準のgRPCサーバーです。このサーバーはポート:9090でリッスンし、アプリのビジネスロジック(クライアントメッセージのエコー)を実装します。
  2. envoyはEnvoyプロキシです。:8080でリッスンし、ブラウザのgRPC-Webリクエストをポート:9090に転送します。
  3. commonjs-client:このコンポーネントは、protoc-gen-grpc-web protocプラグインを使用してクライアントスタブクラスを生成し、webpackを使用してすべてのJS依存関係をコンパイルし、簡単なWebサーバーを使用して静的コンテンツ(echotest.htmldist/main.js)をポート:8081でホストします。Webページから入力されたユーザーメッセージは、gRPC-webリクエストとしてEnvoyプロキシに送信されます。

次にすること