diff --git a/pom.xml b/pom.xml
index ba45136..1ff5b1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,7 @@
com.squareup.okhttp
okhttp-ws
- 2.5.0
+ 2.7.0
org.json
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 f5c21dc..9f58986 100644
--- a/src/main/java/io/socket/engineio/client/transports/WebSocket.java
+++ b/src/main/java/io/socket/engineio/client/transports/WebSocket.java
@@ -1,29 +1,35 @@
package io.socket.engineio.client.transports;
+import com.squareup.okhttp.OkHttpClient;
+import com.squareup.okhttp.Request;
+import com.squareup.okhttp.RequestBody;
+import com.squareup.okhttp.Response;
+import com.squareup.okhttp.ResponseBody;
+import com.squareup.okhttp.ws.WebSocketCall;
+import com.squareup.okhttp.ws.WebSocketListener;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
+
+import javax.net.ssl.SSLSocketFactory;
+
import io.socket.engineio.client.Transport;
import io.socket.engineio.parser.Packet;
import io.socket.engineio.parser.Parser;
import io.socket.parseqs.ParseQS;
import io.socket.thread.EventThread;
-import com.squareup.okhttp.OkHttpClient;
-import com.squareup.okhttp.Request;
-import com.squareup.okhttp.Response;
-import com.squareup.okhttp.ws.WebSocket.PayloadType;
-import com.squareup.okhttp.ws.WebSocketCall;
-import com.squareup.okhttp.ws.WebSocketListener;
import io.socket.utf8.UTF8Exception;
import okio.Buffer;
-import okio.BufferedSource;
-import javax.net.ssl.SSLSocketFactory;
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.Logger;
-
-import static com.squareup.okhttp.ws.WebSocket.PayloadType.BINARY;
-import static com.squareup.okhttp.ws.WebSocket.PayloadType.TEXT;
+import static com.squareup.okhttp.ws.WebSocket.BINARY;
+import static com.squareup.okhttp.ws.WebSocket.TEXT;
public class WebSocket extends Transport {
@@ -81,24 +87,21 @@ public class WebSocket extends Transport {
}
@Override
- public void onMessage(BufferedSource payload, final PayloadType type) throws IOException {
+ public void onMessage(final ResponseBody responseBody) throws IOException {
Object data = null;
- switch (type) {
- case TEXT:
- data = payload.readUtf8();
- break;
- case BINARY:
- data = payload.readByteArray();
- break;
- default:
- EventThread.exec(new Runnable() {
- @Override
- public void run() {
- self.onError("Unknown payload type: " + type, new IllegalStateException());
- }
- });
+ if (responseBody.contentType() == TEXT) {
+ data = responseBody.string();
+ } else if (responseBody.contentType() == BINARY) {
+ data = responseBody.source().readByteArray();
+ } else {
+ EventThread.exec(new Runnable() {
+ @Override
+ public void run() {
+ self.onError("Unknown payload type: " + responseBody.contentType(), new IllegalStateException());
+ }
+ });
}
- payload.close();
+ responseBody.source().close();
final Object finalData = data;
EventThread.exec(new Runnable() {
@Override
@@ -152,9 +155,9 @@ public class WebSocket extends Transport {
public void call(Object packet) {
try {
if (packet instanceof String) {
- self.ws.sendMessage(TEXT, new Buffer().writeUtf8((String) packet));
+ self.ws.sendMessage(RequestBody.create(TEXT, (String) packet));
} else if (packet instanceof byte[]) {
- self.ws.sendMessage(BINARY, new Buffer().write((byte[]) packet));
+ self.ws.sendMessage(RequestBody.create(BINARY, (byte[]) packet));
}
} catch (IOException e) {
logger.fine("websocket closed before onclose event");