From 9f55bda50b8852169c93d8cbbdae3403c65ce8dd Mon Sep 17 00:00:00 2001 From: Amy Nichol Date: Fri, 17 Sep 2021 06:55:16 -0700 Subject: [PATCH] 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 --- .../ReconnectingWebSocket.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java b/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java index abbd9256fa7..69a417078f9 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +++ b/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java @@ -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() {