Как остановить grpc c ++ клиент от тайм-аута? - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть клиент 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; 
}

Может кто-нибудь указать, что я делаю не так? Или что добавить в код, чтобы остановить его от тайм-аута.

...