小编dam*_*eak的帖子

gpp在cpp异步服务器中的多个服务

我知道源代码中有一个示例helloworld程序gRPC.但是,对于这个新手,我不明白如何在服务器中编写多个异步服务.这里的示例讨论了生成类的新实例以处理SayHello服务调用.

  1. 例如SayBye,如何添加新服务,以便我可以从客户端调用它?
  2. 如何让服务器识别客户端进行的服务调用?

grpc

7
推荐指数
1
解决办法
3368
查看次数

拦截服务器和客户端中的gRPC C++调用

我想要做的基本任务:Authenticate在gRPC服务器中提供一个服务,所有客户端最初调用(并提供用户名和密码)以获取授权令牌(比如JWT).接下来,当客户端进行其他服务调用时,应验证令牌.

这可以通过Java API轻松使用ServerInterceptorClientInterceptor接口来完成.在ServerInterceptor我可以检查调用哪个服务,并决定是否允许或拒绝该呼叫.在ClientInterceptor侧面,我可以将授权令牌作为元数据添加到每个服务调用.

AuthMetadataProcessorC++中有这个抽象类.但不确定如何完成类似于Java API的任务.有没有办法在C++ API中做类似的事情?

c++ grpc

6
推荐指数
1
解决办法
3229
查看次数

在gRPC客户端服务器通信中使用SSL

我对SSL / TLS一无所知,并按照网上的说明尝试在gRPC中使用SSL / TLS通道。这是服务器代码:

  std::string server_address("0.0.0.0:50051");
  GreeterServiceImpl service;

  grpc::SslServerCredentialsOptions::PemKeyCertPair pkcp ={"a","b"};
  grpc::SslServerCredentialsOptions ssl_opts;
  ssl_opts.pem_root_certs="";
  ssl_opts.pem_key_cert_pairs.push_back(pkcp);

  std::shared_ptr<grpc::ServerCredentials> creds;
  creds = grpc::SslServerCredentials(ssl_opts);

  ServerBuilder builder;
  builder.AddListeningPort(server_address, creds);
  builder.RegisterService(&service);
  std::unique_ptr<Server> server(builder.BuildAndStart());
Run Code Online (Sandbox Code Playgroud)

服务器将无法启动,并因以下错误而终止。

E1115 13:00:55.657846941   17129 ssl_transport_security.c:636] Invalid cert chain file.
E1115 13:00:55.657936436   17129 security_connector.c:830]   Handshaker factory creation failed with TSI_INVALID_ARGUMENT.
E1115 13:00:55.657954952   17129 server_secure_chttp2.c:344] {"created":"@1479243655.657946821","description":"Unable to create secure server with credentials of type Ssl.","file":"src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c","file_line":242,"security_status":1}
Server listening on 0.0.0.0:50051
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

我要做的只是使用SSL进行服务器和客户端通信。看起来我在服务器中缺少适当的证书,并且相信客户端中也需要类似的东西。由于我没有SSL的背景知识,因此,如果有人可以向我指出有关如何创建这些证书并将其正确用于gRPC通信的示例,那将是很好的。

ssl grpc

4
推荐指数
1
解决办法
3252
查看次数

标签 统计

grpc ×3

c++ ×1

ssl ×1