GRPC 是什麼? 有別於傳統的client 和 server 端的連線,而是持續性且高效能的連線, 連線上的架構是HTTP2 協定,使用Protocol Buffers 作為介面描述語言,連線模式,可以1 (SERVER) 對多 (CLIENT),也可雙向溝通,而一般REST 連線只能作到單向構通
一、 建立GRPC的前置作業
先安裝GRPC的專案, 如果畫面上沒有出現asp.net Core gRPC的服務時,請搜尋GRPC
選擇asp.net Core gRPC服務
按下一步,就完成了… 建立GRPC Server端
二、建立GRPC Server
Protos/greet.proto:會定義 `Greeter` gRPC,並會用來產生 gRPC 伺服器協定
以下是範例:
syntax =
"proto3";
option
csharp_namespace = "GrpcService1";
package
greet;
// server的名稱為 Greeter
service
Greeter {
//
Sends a greeting
rpc
SayHello (HelloRequest) returns (HelloReply);
}
// The
request 參數 name
message
HelloRequest {
string
name = 1;
}
// The
response 回傳 message
message
HelloReply {
string
message = 1;
}
|
三、建立GRPC Client
這用於client 與server端 的協定,所以clint端也需要相同的.proto, 所以從server端的 Protos/greet.proto copy一份到client端 Protos路徑下
以下是client的內容 ,但與server端略有不同,
選擇.proto 按下右鍵,在 gprc stub Classes 選擇 client Only

syntax
= "proto3";
option
csharp_namespace = "GrpcGreeterClient"; //要自已設定clientOnly
package
greet;
//
跟server端的server名稱一致
service
Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns
(HelloReply);
}
//
The request message containing the user's name.
message
HelloRequest {
string name = 1;
}
//
The response message containing the greetings.
message
HelloReply {
string message = 1;
}
|
四、執行結果
server 端的執行檔
client 端的執行檔