在过去的几周中,我们的客户开始看到数百个此类“ SSLException错误-对等方重置连接”,我不知道为什么
我们在okhttp上使用Retrofit,没有特殊配置
public class OkHttpClientProvider implements IOkHttpClientProvider {
OkHttpClient okHttpClient;
public OkHttpClientProvider() {
this.okHttpClient = createClient();
}
public OkHttpClient getOkHttpClient() {
return this.okHttpClient;
}
private OkHttpClient createClient() {
return new OkHttpClient();
}
}
上面的客户提供者是一个单例。RestAdapter是使用此注入的客户端(我们使用匕首)构建的-
RestAdapter.Builder restAdapterBuilder = new RestAdapter.Builder()
.setConverter(converter)
.setEndpoint(networkRequestDetails.getServerUrl())
.setClient(new OkClient(okHttpClientProvider.getOkHttpClient()))
.setErrorHandler(new NetworkSynchronousErrorHandler(eventBus))
);
根据堆栈溢出解决方案,我发现了-
服务器上的存活时间为180秒,OkHttp的默认保留时间为300秒
服务器在其标头中返回“ Connection:close”,但客户端请求发送“ Connection:keepAlive”
服务器支持TLS 1.0 / 1.1 / 1.2并使用Open SSL
我们的服务器最近已移至其他地区的另一个托管服务提供商,所以我不知道这些是否是DNS故障
我们尝试调整诸如keepAlive,在服务器上重新配置的OpenSSL之类的内容,但是由于某些原因,Android客户端不断出现此错误
当您尝试使用该应用发布内容或拉动刷新时,它会立即发生而没有任何延迟(它甚至不会进入网络,或者在此异常发生之前会出现延迟,这暗示连接已经断开)。但是尝试多次以某种方式“修复”它,我们获得了成功。以后再发生
我们已使服务器上的DNS条目无效,以查看是否是造成此问题的原因,但这并没有帮助
它主要发生在LTE,但我也在Wifi上看到过
我不想禁用“保持活动”,因为大多数现代客户都不会这样做。另外,我们使用的是OkHttp 2.4,这在后期冰淇淋三明治设备上是一个问题,因此我希望它可以解决这些潜在的网络问题。iOS客户端也会获得这些例外,但减少了近100倍(iOS客户端使用AFNetworking 2.0)。我正在努力寻找新的东西来尝试,有什么帮助/想法吗?
MMTTMM
相关分类