diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 439755f9..415e673b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -11,24 +11,38 @@ jobs:
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
java: [7, 8, 11]
steps:
- uses: actions/checkout@v2
+
+ - name: Install Maven 3.8.x (instead of 3.9.x)
+ run: |
+ MAVEN_VERSION=3.8.8
+ wget https://downloads.apache.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz
+ tar xzvf apache-maven-$MAVEN_VERSION-bin.tar.gz
+ sudo mv apache-maven-$MAVEN_VERSION /opt/maven
+ sudo rm -f /usr/bin/mvn # Remove existing symbolic link if it exists
+ sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn # Create new symbolic link
+
- name: Setup java
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
+
- name: Cache Maven packages
- uses: actions/cache@v2
+ uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
+
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 14.x
+
- name: Run the Maven verify phase
run: mvn verify -Dgpg.skip=true
diff --git a/History.md b/History.md
index 6adbf3cf..fefc5946 100644
--- a/History.md
+++ b/History.md
@@ -1,4 +1,29 @@
+1.0.2 / 2022-07-10
+==================
+
+From the "1.x" branch.
+
+### Bug Fixes
+
+* check the type of the initial packet ([319f2e2](https://github.com/socketio/engine.io-client-java/commit/319f2e21bedced2866790671b3ae9ae7b0fabb82))
+* increase the readTimeout value of the default OkHttpClient ([2d87497](https://github.com/socketio/engine.io-client-java/commit/2d874971c2428a7a444b3a33afe66aedcdce3a96))
+
+
+
+2.1.0 / 2022-07-10
+==================
+
+### Features
+
+* create heartbeat scheduler with named threads and as daemon ([#106](https://github.com/socketio/engine.io-client-java/issues/106)) ([7c9c382](https://github.com/socketio/engine.io-client-java/commit/7c9c382505f7411544add5a68fa326df3b82d2c1))
+
+### Bug Fixes
+
+* increase the readTimeout value of the default OkHttpClient ([fb531fa](https://github.com/socketio/engine.io-client-java/commit/fb531fab30968a4b65a402c81f37e92dd5671f33))
+
+
+
2.0.0 / 2020-12-11
==================
diff --git a/README.md b/README.md
index 643fbdc4..9875d3ab 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ Add the following dependency to your `pom.xml`.
io.socket
engine.io-client
- 2.0.0
+ 2.1.0
```
@@ -44,7 +44,7 @@ Add the following dependency to your `pom.xml`.
Add it as a gradle dependency for Android Studio, in `build.gradle`:
```groovy
-compile ('io.socket:engine.io-client:2.0.0') {
+compile ('io.socket:engine.io-client:2.1.0') {
// excluding org.json which is provided by Android
exclude group: 'org.json', module: 'json'
}
diff --git a/pom.xml b/pom.xml
index 3e9e3c97..46fff7a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
io.socket
engine.io-client
- 2.0.1-SNAPSHOT
+ 2.1.1-SNAPSHOT
jar
engine.io-client
Engine.IO Client Library for Java
diff --git a/src/main/java/io/socket/engineio/client/Socket.java b/src/main/java/io/socket/engineio/client/Socket.java
index 02de6bd5..e49e1420 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 Socket(Options opts) {
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 static void setDefaultOkHttpCallFactory(okhttp3.Call.Factory factory) {
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 11ec6b38..34a65eb3 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 @@
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.Callback;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
-import okhttp3.OkHttpClient;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
@@ -160,7 +158,7 @@ public Request(Options opts) {
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 c2153c35..0c4c223b 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.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 @@ protected void doOpen() {
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 @@ protected void doOpen() {
}
}
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();
diff --git a/src/site/markdown/installation.md b/src/site/markdown/installation.md
index 8b6f845a..3513b78e 100644
--- a/src/site/markdown/installation.md
+++ b/src/site/markdown/installation.md
@@ -17,7 +17,7 @@ Add the following dependency to your `pom.xml`.
io.socket
engine.io-client
- 2.0.0
+ 2.1.0
```
@@ -26,7 +26,7 @@ Add the following dependency to your `pom.xml`.
Add it as a gradle dependency for Android Studio, in `build.gradle`:
```groovy
-compile ('io.socket:engine.io-client:2.0.0') {
+compile ('io.socket:engine.io-client:2.1.0') {
// excluding org.json which is provided by Android
exclude group: 'org.json', module: 'json'
}