【发布时间】:2019-04-17 02:28:13
【问题描述】:
我使用 protobufs 来定义我的模型和 gRPC 服务,并为 Go (.pb.go) 生成了 protos。当我对服务进行 gRPC 调用时,我想在服务器中找出调用服务器 API 的客户端/应用程序的名称。 API 中的 context 参数可以在这里提供帮助吗?
【问题讨论】:
标签: go protocol-buffers grpc grpc-go
我使用 protobufs 来定义我的模型和 gRPC 服务,并为 Go (.pb.go) 生成了 protos。当我对服务进行 gRPC 调用时,我想在服务器中找出调用服务器 API 的客户端/应用程序的名称。 API 中的 context 参数可以在这里提供帮助吗?
【问题讨论】:
标签: go protocol-buffers grpc grpc-go
您可以使用WithUserAgent 拨号选项在客户端上设置自定义用户代理字符串。
要在服务器端检索用户代理,请参阅this question。它没有完全回答,但您可以打印元数据映射并查看用户代理如何存储在元数据中。然后在那里发布你的发现:)
【讨论】:
作为一个选项,您可以使用GRPC Metadata。它不是强类型(因为它只是map[string][]string),但可能很好地满足您的需求。在客户端设置自定义元数据字段并在服务器处理程序中检查此字段。
【讨论】: