Nodejs ビルド grpc

PHPz
リリース: 2023-05-25 15:19:08
オリジナル
1250 人が閲覧しました

はじめに

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 のバージョン情報を確認できます。

Nodejs ビルド 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート