如何知道收到 gRPC 请求的端口

问题描述

我有一个 C++ gRPC 服务,它使用以下 RPC 侦听多个端口 555554444444888

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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...