前情提要
筆者於[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