クイックスタート

このガイドでは、簡単な動作例で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」のようなメッセージを入力します。
    • Sendボタンを押します。

    入力ボックスの下に、サーバーによってエコーされたメッセージが表示されます。

おめでとうございます!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サーバーを使用してポート:8081で静的コンテンツ(echotest.htmlおよびdist/main.js)をホストします。Webページから入力されたユーザーメッセージは、gRPC-WebリクエストとしてEnvoyプロキシに送信されます。

次は何をするか