GRCP拦截客户端

问题描述

我正在使用protobuf-net(在Grpc.Core的v1.0.123之上,v2.30.0),并使用

创建代理
     var channel = new Channel(uri.Host,uri.Port,ChannelCredentials.Insecure,new []
     {
        new ChannelOption("grpc.keepalive_time_ms",oneDayMs),new ChannelOption("grpc.keepalive_timeout_ms",new ChannelOption("grpc.keepalive_permit_without_calls",1),});
     var proxy = channel.CreateGrpcService<T>();

这很好用,但是一段时间不活动后,代理停止工作,我得到 Status(StatusCode="UnkNown",Detail="Stream removed",Debu...,我认为这是一个保持连接的问题。

我的第一个问题是:是否应该在服务器端设置这些选项?

这似乎是不可能的,因为它们是ChannelOptions,但我问是因为我的第二个问题是:有没有办法拦截客户端调用?如果有的话,我可以在尝试并重新创建代理时检查异常(这将适用于我们的用例)。但是,据我所知,Interceptor类严格来说是服务器端的事情。

基本上,我只是想延长GRPC服务的生命周期,但是会采取任何方式到达那里。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)