diff --git a/src/main/java/io/socket/engineio/client/Socket.java b/src/main/java/io/socket/engineio/client/Socket.java index 02de6bd..e49e142 100644 --- a/src/main/java/io/socket/engineio/client/Socket.java +++ b/src/main/java/io/socket/engineio/client/Socket.java @@ -206,16 +206,10 @@ public class Socket extends Emitter { this.callFactory = opts.callFactory != null ? opts.callFactory : defaultCallFactory; this.webSocketFactory = opts.webSocketFactory != null ? opts.webSocketFactory : defaultWebSocketFactory; if (callFactory == null) { - if (defaultOkHttpClient == null) { - defaultOkHttpClient = new OkHttpClient(); - } - callFactory = defaultOkHttpClient; + callFactory = getDefaultOkHttpClient(); } if (webSocketFactory == null) { - if (defaultOkHttpClient == null) { - defaultOkHttpClient = new OkHttpClient(); - } - webSocketFactory = defaultOkHttpClient; + webSocketFactory = getDefaultOkHttpClient(); } this.extraHeaders = opts.extraHeaders; } @@ -228,6 +222,15 @@ public class Socket extends Emitter { defaultCallFactory = factory; } + private static OkHttpClient getDefaultOkHttpClient() { + if (defaultOkHttpClient == null) { + defaultOkHttpClient = new OkHttpClient.Builder() + .readTimeout(1, TimeUnit.MINUTES) // defaults to 10 seconds + .build(); + } + return defaultOkHttpClient; + } + /** * Connects the client. * diff --git a/src/main/java/io/socket/engineio/client/transports/PollingXHR.java b/src/main/java/io/socket/engineio/client/transports/PollingXHR.java index 11ec6b3..34a65eb 100644 --- a/src/main/java/io/socket/engineio/client/transports/PollingXHR.java +++ b/src/main/java/io/socket/engineio/client/transports/PollingXHR.java @@ -2,7 +2,6 @@ package io.socket.engineio.client.transports; import java.io.IOException; -import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -18,7 +17,6 @@ import okhttp3.Call; import okhttp3.Callback; import okhttp3.HttpUrl; import okhttp3.MediaType; -import okhttp3.OkHttpClient; import okhttp3.RequestBody; import okhttp3.Response; import okhttp3.ResponseBody; @@ -160,7 +158,7 @@ public class PollingXHR extends Polling { this.method = opts.method != null ? opts.method : "GET"; this.uri = opts.uri; this.data = opts.data; - this.callFactory = opts.callFactory != null ? opts.callFactory : new OkHttpClient(); + this.callFactory = opts.callFactory; this.extraHeaders = opts.extraHeaders; } diff --git a/src/main/java/io/socket/engineio/client/transports/WebSocket.java b/src/main/java/io/socket/engineio/client/transports/WebSocket.java index c2153c3..0c4c223 100644 --- a/src/main/java/io/socket/engineio/client/transports/WebSocket.java +++ b/src/main/java/io/socket/engineio/client/transports/WebSocket.java @@ -7,7 +7,6 @@ import io.socket.engineio.parser.Parser; import io.socket.parseqs.ParseQS; import io.socket.thread.EventThread; import io.socket.yeast.Yeast; -import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.WebSocketListener; @@ -41,7 +40,6 @@ public class WebSocket extends Transport { this.emit(EVENT_REQUEST_HEADERS, headers); final WebSocket self = this; - okhttp3.WebSocket.Factory factory = webSocketFactory != null ? webSocketFactory : new OkHttpClient(); Request.Builder builder = new Request.Builder().url(uri()); for (Map.Entry> entry : headers.entrySet()) { for (String v : entry.getValue()) { @@ -49,7 +47,7 @@ public class WebSocket extends Transport { } } final Request request = builder.build(); - ws = factory.newWebSocket(request, new WebSocketListener() { + ws = webSocketFactory.newWebSocket(request, new WebSocketListener() { @Override public void onOpen(okhttp3.WebSocket webSocket, Response response) { final Map> headers = response.headers().toMultimap();