问题描述
我有一个 C++ gRPC 服务,它使用以下 RPC 侦听多个端口 55555
、44444
和 44888
:
message FooRequest { string message = 1; }
message FooResponse { string message = 1; }
service FooService {
rpc FooRpc(FooRequest) returns (FooResponse) {}
}
我通过调用 API grpc::ServerBuilder::AddListeningPort(...)
来添加多个监听端口
所以我的服务的客户端可以在这些端口中的任何一个调用 RPC。我想知道在服务端,RPC是在哪个端口收到的,可以吗?
Status FooRpc(ServerContext* context,const FooRequest* request,FooResponse* response) override {
// how to kNow the port at which this RPC was received?
return Status::OK;
}
我想对在不同端口上接收的 RPC 使用不同类型的身份验证。端口 55555 仅在设备内公开(进程间通信),因此在其上收到的请求不需要身份验证。端口 44888 暴露在互联网上,因此我们希望对在其上收到的请求进行基于证书的身份验证。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)