前情提要
筆者於[DotnetCore]gRPC101: Gretting專案-Server篇中詳細交代產生該系列文之原因了,因篇幅太長,決定分為Server篇及Client篇,簡述一下Client端的作法,還記得Server篇中提到以及宣告好的proto
檔案嗎,對於Client
端來說,只要拿Server
端產生的proto
檔案拿來用即可,因為也是要產生編譯後的cs檔案,namespace
要改成Client
端專案名稱即可,一切就水到渠成了,接下來就拿proto
檔中的方法呼叫下去就萬事ok了,跟著筆者看下去吧。
內容
筆者依照慣例,簡單講述一下其步驟:
- 建立
Console
專案 - 複製貼上
proto
專案及調整namespace
- 編譯
proto
檔案 - 於
Program.cs
中透過gRPC
傳輸技術呼叫方法
Gretting專案:Client
建立Console專案
筆者就沿用上篇中實作的方案中
1 | cd GRPC.Demo |
安裝必要套件
Client端專案則需要以下套件
1 | # 包含dotnet core Client端所需 |
複製proto檔案並調整namespace
複製步驟就因人而異,筆者這邊透過指令來複製
1 | cd GRPC.Demo.Client\ |
透過vscode
開啟專案,調整其namespace
1 | option csharp_namespace = "GRPC.Demo.Client"; |
編譯proto檔案
筆者這邊就不贅述其dotnet-grpc tool
了,就直接下指令吧
1 | cd GRPC.Demo.Client\ |
接著就下指令建置吧
1 | dotnet build |
你就會得到它了,會在obj>Debug>{Target Framework}>protos
中,筆者就不另外截圖了
改造Program.cs
寫Client
端呼叫相關的程式碼,以這個例子來說,有一個SayHello
方法可以呼叫
1 | using System.Threading.Tasks; |
執行程式
- Server端程式
1 | cd GRPC.Demo.Server\ |
怕讀者不知道https profile
在哪,筆者這邊列出所在路徑: Properties>launchSettings.json
,裡頭有
1 | "profiles": { |
- Client端程式
1 | cd GRPC.Demo.Client\ |
結論
到這邊大功告成了,完成了一個gRPC
的完整招式,筆者這邊接下來依照工作所需,會繼續研讀https://learn.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-7.0中的Remote Procedure Call Apps
相關章節,敬請期待。
參考
- https://developers.google.com/protocol-buffers/docs/proto3
- https://learn.microsoft.com/en-us/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-7.0&tabs=visual-studio