每当grpc服务器打开/关闭与某些客户端的新传输连接时,我都希望有一些通知/处理程序。
我发现了这个question,它导致了这个ServerTransportFilter解决方案。但是,此选项引用 grpc-java 实现。 我在python grpc包上搜索了它,却找不到它。
我找到的最接近的机制是服务器构造函数中的interceptor参数,但这会在每个rpc中发生,并且无论如何都不包含有关连接打开/关闭的信息。
答案 0 :(得分:1)
对于客户端而言,Channel.subscribe是您所需要的。
但是对于服务器端,这是一个棘手的问题。传输逻辑(TCP套接字)是在gRPC C-Core中实现的,这对于Python包装器层而言是不完全可见的。因此,当前您无法为这些事件注册处理程序。
也许可以通过某种方式实现拦截器中的功能,但这需要在此处获得有关目标的更多详细信息。
如果您认为此功能对您的项目很重要,请向grpc/grpc提交问题。