Для приложения IOS соединение работает, но после того, как телефон некоторое время простаивает, соединение теряется, так как такие вызовы RPC зависают, без какого-либо ответа.
У меня была такая же проблема в JAVA, там я добавил DeadLine и перестроил канал, когда превысил Deadline, что-то вроде ниже.
stub.withDeadlineAfter(timeout, TimeUnit.MILLISECONDS).execute(input, new StreamObserver<AgentGuardStringResponse>() { ... }
Тогда при ошибке (крайний срок превышен)
mChannel.shutdown();
Это отлично работает.
Для объектива-c / ios
Я установил тайм-аут для вызовов RPC следующим образом:
[call setTimeout:timeout];
call.requestHeaders[@"sessionId"] = sessionId;
[call start];
И попробуйте восстановить,
_serviceClient = [[AgentGuardService alloc] initWithHost:GRPCMetadata.shared.uri];
Похоже, это не работает, так как приложение некоторое время бездействует после запуска, и в конце концов запросы начинают проходить.
Любые указатели / руководства будут очень полезны.
Спасибо