我有一个grpc c ++客户端,它正在侦听来自服务器的响应流,我希望它永远侦听响应,或者在关闭之前将一些响应发送到服务器。但是客户端会在15秒后自动关闭。 我试图设置ClientContext :: set_deadline,但是它不起作用。 这是我的代码:
ClientContext context;
// Connection timeout in seconds
unsigned int client_connection_timeout = 5000;
// Set timeout for API
std::chrono::system_clock::time_point deadline = std::chrono::system_clock::now() + std::chrono::seconds(client_connection_timeout);
context.set_deadline(deadline);
std::unique_ptr<ClientReader<Tap>> reader(stub_->STap(&context, tap_request));
while (reader->Read(&tap_reply)) {
std::cout<<"Response got from server: " << tap_reply.message() << " " << std::endl;
}
status = reader->Finish();
// Act upon its status.
if (status.ok()) {
std::cout << "rpc succeeded" << std::endl;
} else {
std::cout << status.error_code() << ": " << status.error_message()
<< std::endl;
std::cout << "RPC failed" << std::endl;
}
有人可以指出我做错了什么吗?或添加什么代码以阻止其超时。