多言語コールを構築するためのgprc環境

一、golang

1、protocalバッファインストール

https://github.com/google/protobuf/releasesインストールパッケージをダウンロードしてください

私はここを参照してください解凍ウィンドウの後protoc.exeです

最後に、あなたは環境変数を設定することができます

2、インストールgolangのいるProtobuf

取得-u github.com/golang/protobuf/proto // golangいるProtobuf库行く
行く取得-u github.com/golang/protobuf/protoc-gen-go // protoc --go_out工具

3、インストールがgRPC-行きます

google.golang.org/grpcを取りに行きます

https://github.com/grpc/grpc-goダウンロードを行って、その後、ダウンロードすることはできません。

まあ、コードを書き始める、我々は、HelloWorldをテストするためにインターネットを使用します。

4、プロジェクト構造

サーバー用golang、他の言語は、顧客サービス側です。

helloworld.proto 

構文=「proto3」。

パッケージのHelloWorld; 

//グリーティングサービス定義。
サービスグリーターは{ 
  //挨拶送信
  のsayHello(HelloRequest)リターン(HelloReply)RPCを{} 
} 

//ユーザーの名前を含む要求メッセージ。
メッセージHelloRequest { 
  文字列名= 1。
} 

挨拶含む応答メッセージ// 
メッセージHelloReply { 
  文字列メッセージ= 1。
}

コンパイラのコマンドを実行します

protoc --go_out =プラグイン= grpc :. helloworld.proto

 これは、ファイルを生成しますhelloworld.pb.go

サーバー

パッケージメイン

インポート(
	"コンテキスト" 
	"google.golang.org/grpc" 
	PB "grpcテスト/サーバ/プロト/ HelloWorldの" 
	"ログイン" 
	""ネット

CONST(
	PORT = 50001を"" 

を入力サーバのstruct {} 

FUNC (S *サーバー)のsayHello(* pb.HelloRequest中CTX context.Context、)(* pb.HelloReply、エラー){ 
	log.Println( "要求:"、in.Name)
	リターン&pb.HelloReply {メッセージ: "こんにちは" + in.Name}はnil 
} 

メインFUNC(){ 
	ERR、LIS:= net.Listen( "TCP"、PORT)

	誤る場合= nilは{!
		log.Fatalfは( "聞くために失敗しました:%のV"、ERR)
	} 

	S:= grpc.NewServer() 
	PB。RegisterGreeterServer(S、&サーバー{})
	log.Println( "RPCサービスが開かれている")
	s.Serve(LIS)
}

 Kefuduan

メインパッケージ

インポート(
	"コンテキスト" 
	"google.golang.org/grpc" 
	PB "grpcテスト/クライアント/プロト/ HelloWorldの" 
	"ログ" 
	"OS" 

CONST(
	アドレス= "ローカルホスト:50001" 

FUNCメイン(){ 
	CONN、ERR:= grpc.Dial(アドレス、grpc.WithInsecure())

	ERRの場合= nilの{!
		log.Fatalfは( "接続できませんでした:%はV"、ERR)
	} 

	はconn.close()延期

	:= PB Cを。 NewGreeterClient(CONN)

	名= "LIN" 
	ならLEN(os.Args)> 1 { 
		名前= os.Args [1] 
	} 

	R、ERR = c.SayHello(context.Background()、&pb.HelloRequest {名:名})

	errがあれば!=ゼロ{ 
		log.Fatalf( "挨拶ができませんでした:%V"を、ERR)
	} 

	log.Println(r.Message)
}

業績

二、nodejs

図1に示すように、直接インストールしてNPM 

NPM --save-devのgrpc-ツールをインストール
NPMグーグル-いるProtobuf --saveインストール
NPM grpc --saveをインストール

./node_modules/grpc-tools/binでは、次の2つのファイルがprotoc.exeとgrpc_node_plugin.exeいます

2、コンパイラのコマンドを実行します。

./node_modules/grpc-tools/bin/protoc --js_out = import_style = commonjs、バイナリ:./ --plugin = protoc-GEN-grpc = / node_modules / grpc-ツール/ binに/ grpc_node_plugin.exe --grpc_out = 。helloworld.proto

それはhelloworld_grpc_pb.js helloworld_pb.js 2 JSファイルを生成し、

3、client.js

VaRのgrpc =必要( 'grpc'); 
VaRのメッセージ=は(」./プロト/ helloworldの/ helloworld_pb.js')が必要です。
VARサービス=は、(」./プロト/ helloworldの/ helloworld_grpc_pb.js')必要と

するvar要求=新しいmessages.HelloRequest(); 
request.setName( '世界'); 

VARクライアント=新しいservices.GreeterClient(
    'localhostを:50001'、
    grpc.credentials.createInsecure()
); 
client.sayHello(リクエスト、関数(ERR、データ){ 
    IF(ERR){ 
        console.error(ERR); 
    } 
    にconsole.log(データ); 
})

4、業績

三、C#のコア

1、必要なパッケージをインストールするには

インストール・パッケージGrpc 
インストール・パッケージGoogle.Protobuf 
Grpc.Tools・パッケージのインストール

2、コンパイラのコマンドを実行します。

helloworldの--grpc_outのHelloWorldのhelloworld / helloworld.proto --csharp_out protoc.exe -IのHelloWorld --plugin = protoc-GEN-grpc = grpc_csharp_plugin.exe

2つのファイルはHelloworld.cs HelloworldGrpc.cs生成され、

3、テストコード

システムを使用しました。
Grpc.Coreを使用しました。
HelloWorldのを使用して、

名前空間grpc 
{ 
    クラスプログラム
    { 
        静的な無効メイン(文字列[] args)
        { 
            チャンネルチャンネル=新しいチャンネル( "127.0.0.1:50001"、ChannelCredentials.Insecure)。

            VARクライアント=新しいGreeter.GreeterClient(チャネル)。
            VAR応答= client.SayHello(新しいHelloRequest {NAME = "LIN"})。
            Console.WriteLineを( "来自" + reply.Message)。

            channel.ShutdownAsync()(WAIT)。
            Console.WriteLineを( "任意键退出..."); 
            Console.ReadKey(); 
        } 
    } 
}

業績

サーバーが一時的にこれらの言語で使用されているので、まあ、ここでテストされ、私はここにいます。テストへの他の言語あなたのすべてを。

コード住所:https://github.com/fanxiaoping/grpc-test

おすすめ

転載: www.cnblogs.com/fanxp/p/11408114.html