首页 > 解决方案 > 如何检查连接到 GRPC 服务器的客户端

问题描述

为了为我的 GRPC 服务器/客户端设置提供更好的调试信息,我试图找到一个 API grpc.server,以便我检查哪些客户端连接到服务器。

我发现的最有希望的问题是question,它为如何在 Java GRPC 中做到这一点提供了一个起点。但是,Python GRPC 实现中不存在 Java API。

到目前为止,我context.peer()使用grpc.ServicerContext. 如果对等点有一段时间没有发送请求(我设置为 2 秒的超时),我假设客户端已断开连接。

我已经开始查看 python-grpc 源代码,但我没有取得任何进展。

如果有人知道我可以使用的python中类似的API,那将不胜感激!即使是内部 API 也足以满足这些调试需求。

标签: python-3.xgrpcgrpc-python

解决方案


我找到了更多有关 channelz 的文档和示例,其他人一直在建议它,这似乎是您想要的。

这是一个拉取请求,它给出了一个使用 channelz 的例子。它仅使用 GetServer channelz API,因此您必须对其进行调整。

这是一个使用 channelz 的单元测试,它测试可能与 GetTopChannels API 相关的 API。


推荐阅读