[英]Make gRPC call from Go client with TLS - GCP Cloud Function
[英]GO GRPC function stub definition issue
我正在研究 gRPC 和 Golang,並且對兩者都很陌生。 在本教程中有這個 function:
func (s *routeGuideServer) GetFeature(ctx context.Context, point *pb.Point) (*pb.Feature, error) {
...
}
我不明白這個 function 存根中的“(s *routeGuideServer)”部分在做什么。
據我所知,我已經學習了 go 函數和“(ctx context.Context,point *pb.Point)”是輸入,“(*pb.Feature,error)”是output。
這個“(s *routeGuideServer)”部分到底是什么? 任何指向解釋的指針將不勝感激。
它是 function 接收器。
它有點像 OOP 語言中的 class,其中類型 (*routeGuideServer) 具有 function (或方法)。
所以在這種情況下,*routeGuideServer 有一個 GetFeature function。 您需要一個 *routeGuideServer 類型的值來調用 function。
在 GRPC 中,當您制作 protofile 時,您聲明的服務將成為服務器的接口。
您需要遵守此接口,這意味着您需要一個具有這些方法的結構。
因此,啟動服務器的 function 接受服務器的接口,這需要您在服務下定義的所有 rpc 調用。 因此,為了遵守這一點,所有方法都需要一個結構。
如果結構和方法不是語言的一部分,則 function 將需要單獨接收每個 function。
一個很大的好處是,當您初始化結構時,它可以包含字段,例如數據庫連接,作為回報,這些字段在每個方法中都可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.