Find client name for gRPC call in Go

时间:2019-04-17 02:28:13

标签: go protocol-buffers grpc grpc-go

I have used protobufs to define my models and gRPC service, and generated protos for Go (.pb.go). When I make gRPC call to a service, I want to find out in server the name of the client/application calling the server API. Can the context parameter in the API be of any help here?

2 个答案:

答案 0 :(得分:1)

您可以使用GRPC Metadata。它不是强类型的(因为它只是map[string][]string),但是可能很适合您的需求。在客户端设置自定义元数据字段,然后在服务器处理程序中选中此字段。

答案 1 :(得分:0)

您可以使用WithUserAgent拨号选项在客户端上设置自定义用户代理字符串。

有关在服务器端检索用户代理的信息,请参见this question。尚未完全解决,但是您可以仅打印元数据映射并查看用户代理如何存储在元数据中。然后在这里发布您的发现:)