1 回答

TA貢獻1839條經驗 獲得超15個贊
Hash在您的實現中,當您為和初始化端點時,服務名稱是錯誤的Validate。它應該pb.Vault代替Vault. 所以這個New方法應該是這樣的:
func New(conn *grpc.ClientConn) vault.Service {
var hashEndpoint = grpctransport.NewClient(
conn, "pb.Vault", "Hash",
vault.EncodeGRPCHashRequest,
vault.DecodeGRPCHashResponse,
pb.HashResponse{},
).Endpoint()
var validateEndpoint = grpctransport.NewClient(
conn, "pb.Vault", "Validate",
vault.EncodeGRPCValidateRequest,
vault.DecodeGRPCValidateResponse,
pb.ValidateResponse{},
).Endpoint()
return vault.Endpoints{
HashEndpoint: hashEndpoint,
ValidateEndpoint: validateEndpoint,
}
}
一般來說,你應該參考.pb.go匹配生成的文件proto來了解事物的命名方式。如您所見,這并不簡單,可能取決于proto生成器的實現。
在您的情況下,它看起來像這樣:
grpc.ServiceDesc{
ServiceName: "pb.Vault",
HandlerType: (*VaultServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "Hash",
Handler: _Vault_Hash_Handler,
},
{
MethodName: "Validate",
Handler: _Vault_Validate_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "vault.proto",
}
- 1 回答
- 0 關注
- 140 瀏覽
添加回答
舉報