一、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(); } } }
業績
サーバーが一時的にこれらの言語で使用されているので、まあ、ここでテストされ、私はここにいます。テストへの他の言語あなたのすべてを。