我希望在typescript(不是服务器)的GRPC请求的客户端创建一些GRPC拦截器。我知道对于服务器我们可以使用https://grpc.io/blog/grpc-web-interceptor,但是有没有办法从调用方做到这一点呢?
拦截器将封装常见的通用用法,如prometheus的for metrics和opentracing的tracing。
有一个看起来很有前途的grpc.Client
(https://grpc.github.io/grpc/node/grpc.Client.html),因为所有GRPC客户端都扩展了它。那么,是否有人能够拦截对这些make函数的调用(例如makeUnaryRequest
)?这是一个用自定义类扩展生成的GRPC客户端并覆盖makeUnaryRequest
的简单案例吗?
我希望我错过了一些东西,有一种方法可以添加拦截器作为Go中的选项:https://github.com/grpc-ecosystem/go-grpc-prometheus#client-side.
谢谢!Ankur
您链接到的grpc.Client
文档页面显示两个构造器选项是interceptors
和interceptor_providers
,您应该使用其中一个(取决于您的用例)向客户端提供拦截器。创建和使用拦截器的完整规范可以在这个提案文档中找到。