はじめに
gRPC は、Google のオープンソースの高性能クロス言語 RPC フレームワークです。その目標は、クライアント アプリケーションがローカル関数を呼び出すのと同じようにサーバー側のメソッドを呼び出せるようにすることです。次のような複数のプログラミング言語をサポートしています。 C、Python、Java、Go、Node.js などの言語。
Node.js で gRPC を使用すると、サーバーとクライアント間の対話が大幅に容易になり、高いパフォーマンスを確保しながら、データのセキュリティと機密性も提供できます。この記事では、Node.js を使用して次のことを行う方法を紹介します。 gRPC サーバーとクライアントを構築します。
ステップ 1: Node.js と gRPC をインストールする
まず、Node.js と npm がローカルにインストールされていることを確認する必要があります。次に、ターミナルに次のコマンドを入力して gRPC をインストールします。
npm install -g grpc
インストールが完了すると、package.json ファイルで gRPC のバージョン情報を確認できます。
ステップ 2: .proto ファイルを定義する
gRPC は、サービス インターフェイス、メッセージ形式、など。次に、クライアントがサーバーにメッセージを送信し、メッセージの受信後に変更されたメッセージを返すことを可能にする単純なサービスを最初に定義します。 example.proto という名前のファイルを作成し、次の内容を定義します。
syntax = "proto3"; package example; service Example { rpc ModifyMessage (Message) returns (Message){} } message Message { string content = 1; }
ステップ 3: コードの生成
example.proto ファイルがあるディレクトリで次のコマンドを実行して、対応するファイルを生成します。 code :
grpc_tools_node_protoc --js_out=import_style=commonjs,binary:./ --grpc_out=./ --plugin=protoc-gen-grpc=`which grpc_tools_node_protoc_plugin` example.proto
grpc_tools_node_protoc は、Node.js に必要なコードを生成するためにここで使用され、出力ディレクトリが指定されています。
生成されたコードには、example_pb.js と example_grpc_pb.js が含まれます。
ステップ 4: サーバーを実装する
サーバー側のコードは次のとおりです:
const grpc = require("grpc"); const example = require("./example_pb"); const exampleService = require("./example_grpc_pb"); const server = new grpc.Server(); function modifyMessage(call, callback) { const response = new example.Message(); response.setContent(call.request.getContent().toUpperCase()); callback(null, response); } server.addService(exampleService.ExampleService, { modifyMessage: modifyMessage, }); server.bind("localhost:50051", grpc.ServerCredentials.createInsecure()); console.log("Server running at http://localhost:50051"); server.start();
この例では、サーバーは新しい grpc サーバーを作成し、という名前のメソッドを追加します。メッセージを変更します。このメソッドは、Message オブジェクトをパラメータとして受け取り、Message オブジェクトの content フィールドを大文字に変換して返します。
最後に、bind() メソッドを使用してサービスを localhost:50051 にバインドし、サーバーを起動します。
ステップ 5: クライアントを実装する
クライアント コードは次のとおりです:
const grpc = require("grpc"); const example = require("./example_pb"); const exampleService = require("./example_grpc_pb"); const client = new exampleService.ExampleClient( "localhost:50051", grpc.credentials.createInsecure() ); const request = new example.Message(); request.setContent("Hello World!"); client.modifyMessage(request, function (err, response) { console.log("Modified message: ", response.getContent()); });
この例では、ExampleClient オブジェクトを作成し、そのmodifyMessage() メソッドを使用して、サーバーへのメッセージ オブジェクト。最後に、文字列内の文字を大文字に変換したサーバーからの応答を出力します。
ステップ 6: サービスを実行する
あとは、次のコマンドを使用して、サーバー コードが配置されているディレクトリでサービスを開始するだけです。
node server.js
Then 、クライアント コードが配置されているディレクトリ内で次のコマンドを実行します。
node client.js
次の出力が表示されるはずです。
Modified message: HELLO WORLD!
この時点で、基本的な gRPC は正常に実装されました。サーバーとクライアントの対話プロセス。
概要
この記事では、Node.js を使用して gRPC サーバーとクライアントを構築する方法を紹介し、protobuf を使用してサービスの作成と接続の確立の間のデータ構造とメッセージ形式を定義します。 gRPC は、クライアントとサーバー間でデータを迅速に転送する必要があるアプリケーションに役立つ、強力な言語間 RPC フレームワークです。
以上がNodejs ビルド grpcの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。