对于IOS App,连接正常,但是在电话空闲一会后,连接将丢失,因此RPC调用将挂起,而没有任何响应。
我在JAVA中遇到了同样的问题,我在其中添加了一个DeadLine,并在Deadline超过时重建了频道,如下所示。
stub.withDeadlineAfter(timeout, TimeUnit.MILLISECONDS).execute(input, new StreamObserver<AgentGuardStringResponse>() { ... }
然后出错(超过最后期限)
mChannel.shutdown();
这很好。
对于Objective-c / ios
我为RPC调用设置了超时时间
[call setTimeout:timeout];
call.requestHeaders[@"sessionId"] = sessionId;
[call start];
并尝试重建,
_serviceClient = [[AgentGuardService alloc] initWithHost:GRPCMetadata.shared.uri];
这似乎不起作用,因为应用程序在启动后会保持空闲一段时间,并最终开始流经请求。
任何指针/指南都将非常有帮助。
谢谢