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 String mUrl;
private final Handler mHandler; private final Handler mHandler;
private final OkHttpClient mOkHttpClient;
private boolean mClosed = false; private boolean mClosed = false;
private boolean mSuppressConnectionErrors; private boolean mSuppressConnectionErrors;
private @Nullable WebSocket mWebSocket; private @Nullable WebSocket mWebSocket;
@ -56,6 +57,12 @@ public final class ReconnectingWebSocket extends WebSocketListener {
mMessageCallback = messageCallback; mMessageCallback = messageCallback;
mConnectionCallback = connectionCallback; mConnectionCallback = connectionCallback;
mHandler = new Handler(Looper.getMainLooper()); 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() { public void connect() {
@ -63,15 +70,8 @@ public final class ReconnectingWebSocket extends WebSocketListener {
throw new IllegalStateException("Can't connect closed client"); 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(); Request request = new Request.Builder().url(mUrl).build();
httpClient.newWebSocket(request, this); mOkHttpClient.newWebSocket(request, this);
} }
private synchronized void delayedReconnect() { private synchronized void delayedReconnect() {