是否可以OkHttpClient
限制实时连接数?因此,如果达到限制,则不会选择和建立新连接吗?
我的应用程序同时启动多个连接。
答案 0 :(得分:9)
连接数可在Dispatcher中配置,而不是在ConnectionPool中,只允许配置最大空闲连接和保持活动功能。
调度程序允许配置主机的连接数和最大连接数,默认值为每个主机5个,总共64个。对于HTTP / 1,这似乎很低,但如果使用HTTP / 2则可以,因为可以将多个请求发送到一个连接。
要配置调度程序,请按照下列步骤操作:
Dispatcher dispatcher = new Dispatcher();
dispatcher.setMaxRequests(100);
dispatcher.setMaxRequestsPerHost(10);
OkHttpClient client = new OkHttpClient.Builder()
.dispatcher(dispatcher)
.build();
答案 1 :(得分:-1)
您可以通过在OkHttpClient.Builder
上设置ConnectionPool来尝试配置最大空闲网络连接数。
int maxConnections = 5;
int keepAliveDuration = 15000;
ConnectionPool cp = new ConnectionPool(maxConnections, keepAliveDuration, TimeUnit.MILLISECONDS);
new OkHttpClient.Builder()
.connectionPool(cp)
.build();