首页 > 解决方案 > Python GRPC - 连接打开/关闭处理程序

问题描述

每当 grpc 服务器打开/关闭与某个客户端的新传输连接时,我都希望有一些通知/处理程序。

我发现这个问题导致了这个ServerTransportFilter解决方案。但是,此选项指的是grpc-java实现。我在 python grpc 包上搜索它并没有找到它。

我发现的最接近的机制是服务器构造函数中的拦截器参数,但这种情况发生在每个 rpc 中,并且无论如何不包含有关连接打开/关闭的信息。

标签: pythongrpc

解决方案


对于客户端,Channel.subscribe是您正在寻找的。

但对于服务器端,这是一个棘手的问题。传输逻辑(TCP 套接字)在 gRPC C-Core 中实现,这对 Python 包装层不完全可见。因此,目前您无法为这些事件注册处理程序。

可能有一些方法可以实现拦截器中的功能,但它需要更多关于您的目标的详细信息。

如果您认为此功能对您的项目很重要,请向grpc/grpc 提交问题。


推荐阅读