c# - 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", oneDayMs),
new ChannelOption("grpc.keepalive_permit_without_calls", 1),
});
var proxy = channel.CreateGrpcService<T>();
这很好用,但是在一段时间不活动后,代理停止工作并且我得到 Status(StatusCode="Unknown", Detail="Stream removed", Debu...
了 ,我认为这是一个保活问题。
我的第一个问题是:这些选项是否应该以某种方式在服务器端设置?
这似乎是不可能的,因为它们是 ChannelOptions,但我问是因为我的第二个问题是:有没有办法拦截客户端调用?如果有,我可以在尝试并重新创建代理时检查异常(这适用于我们的用例)。但是,据我所知,Interceptor
类严格来说是服务器端的东西。
基本上,我只是想延长 GRPC 服务的生命周期,但会采取任何方式来实现。
解决方案
推荐阅读
- python - 计算新成员的邀请
- django - 如何正确地将 Json 响应返回到 ajax/jquery 模板?
- wordpress - 无法登录 wordpress 本地主机 xaamp
- java - Docker-Compose Java Springboot 和 MySQL
- mysql - 为什么这段代码没有返回任何值?
- java - @SQSListen 导致异常并且不起作用
- reactjs - 当我单击使用 Google 登录按钮时,没有任何反应
- php - 在此服务器上找不到请求的 URL。- php,wordpress
- twilio - Twilio CLI 设置;在自动完成中:什么是“将自动完成 env var 添加到您的 bash 配置文件并获取它”?
- c++ - C++ Nodejs插件数据库连接