Only create one OkHttpClient per ReconnectingWebSocket

Summary:
Changelog:
[Internal]- Share the OkHttpClient within the ReconnectingWebSocket

Reviewed By: makovkastar

Differential Revision: D30763398

fbshipit-source-id: cda931ef83de48075949917b6bd8bc92b5fc2ae8
This commit is contained in:
Amy Nichol 2021-09-17 06:55:16 -07:00 коммит произвёл Facebook GitHub Bot
Родитель 5683932862
Коммит 9f55bda50b
1 изменённых файлов: 8 добавлений и 8 удалений

Просмотреть файл

@ -41,6 +41,7 @@ public final class ReconnectingWebSocket extends WebSocketListener {
private final String mUrl;
private final Handler mHandler;
private final OkHttpClient mOkHttpClient;
private boolean mClosed = false;
private boolean mSuppressConnectionErrors;
private @Nullable WebSocket mWebSocket;
@ -56,6 +57,12 @@ public final class ReconnectingWebSocket extends WebSocketListener {
mMessageCallback = messageCallback;
mConnectionCallback = connectionCallback;
mHandler = new Handler(Looper.getMainLooper());
mOkHttpClient =
new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(0, TimeUnit.MINUTES) // Disable timeouts for read
.build();
}
public void connect() {
@ -63,15 +70,8 @@ public final class ReconnectingWebSocket extends WebSocketListener {
throw new IllegalStateException("Can't connect closed client");
}
OkHttpClient httpClient =
new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(0, TimeUnit.MINUTES) // Disable timeouts for read
.build();
Request request = new Request.Builder().url(mUrl).build();
httpClient.newWebSocket(request, this);
mOkHttpClient.newWebSocket(request, this);
}
private synchronized void delayedReconnect() {