2017-02-17 13 views

答えて

0

OkHttpClient.BuilderConnectionPoolを設定すると、アイドル状態のネットワーク接続の最大数を設定できます。

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

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

最初の引数はmaxIdleConnectionsです。 keepAliveが期限切れの場合、idleConnectionsだけがクリアされます。最大ライブ接続に達すると、要求をブロックする方法はありません。 –

0

接続の数だけではなく、最大アイドル状態の接続を設定し、生きている機能を維持することができますのConnectionPoolに、Dispatcherで設定可能です。

ディスパッチャでは、ホストごとの接続数と最大接続数を設定できます。デフォルトはホストごとに5、合計で64です。これはHTTP/1では低いと思われますが、複数の要求を1つの接続に送信できるため、HTTP/2を使用すると問題ありません。

次の手順を実行し、ディスパッチャを設定するには:

Dispatcher dispatcher = new Dispatcher(); 
dispatcher.setMaxRequests(100); 
dispatcher.setMaxRequestsPerHost(10); 
OkHttpClient client = new OkHttpClient.Builder() 
    .dispatcher(dispatcher) 
    .build(); 
関連する問題