提问者:小点点

OkHttpClient限制连接数?


是否可以使用OkHttpClient限制活动连接的数量?所以,如果达到限制,就不会选择和建立新的连接?

我的应用程序同时启动多个连接。


共2个答案

匿名用户

连接数可在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();

匿名用户

您可以通过在您的OkHttpClient上设置ConnectionPool来尝试配置最大空闲网络连接数。生成器。

int maxConnections = 5;
int keepAliveDuration = 15000;
ConnectionPool cp = new ConnectionPool(maxConnections, keepAliveDuration, TimeUnit.MILLISECONDS);

new OkHttpClient.Builder()
    .connectionPool(cp)
    .build();