Merge branch 'master' of github.com:socketio/engine.io-client-java

This commit is contained in:
nkzawa
2015-12-18 14:28:13 +09:00
2 changed files with 37 additions and 34 deletions

View File

@@ -49,7 +49,7 @@
<dependency> <dependency>
<groupId>com.squareup.okhttp</groupId> <groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp-ws</artifactId> <artifactId>okhttp-ws</artifactId>
<version>2.5.0</version> <version>2.7.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.json</groupId> <groupId>org.json</groupId>

View File

@@ -1,29 +1,35 @@
package io.socket.engineio.client.transports; 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.client.Transport;
import io.socket.engineio.parser.Packet; import io.socket.engineio.parser.Packet;
import io.socket.engineio.parser.Parser; import io.socket.engineio.parser.Parser;
import io.socket.parseqs.ParseQS; import io.socket.parseqs.ParseQS;
import io.socket.thread.EventThread; 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 io.socket.utf8.UTF8Exception;
import okio.Buffer; import okio.Buffer;
import okio.BufferedSource;
import javax.net.ssl.SSLSocketFactory; import static com.squareup.okhttp.ws.WebSocket.BINARY;
import java.io.IOException; import static com.squareup.okhttp.ws.WebSocket.TEXT;
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;
public class WebSocket extends Transport { public class WebSocket extends Transport {
@@ -81,24 +87,21 @@ public class WebSocket extends Transport {
} }
@Override @Override
public void onMessage(BufferedSource payload, final PayloadType type) throws IOException { public void onMessage(final ResponseBody responseBody) throws IOException {
Object data = null; Object data = null;
switch (type) { if (responseBody.contentType() == TEXT) {
case TEXT: data = responseBody.string();
data = payload.readUtf8(); } else if (responseBody.contentType() == BINARY) {
break; data = responseBody.source().readByteArray();
case BINARY: } else {
data = payload.readByteArray();
break;
default:
EventThread.exec(new Runnable() { EventThread.exec(new Runnable() {
@Override @Override
public void run() { public void run() {
self.onError("Unknown payload type: " + type, new IllegalStateException()); self.onError("Unknown payload type: " + responseBody.contentType(), new IllegalStateException());
} }
}); });
} }
payload.close(); responseBody.source().close();
final Object finalData = data; final Object finalData = data;
EventThread.exec(new Runnable() { EventThread.exec(new Runnable() {
@Override @Override
@@ -152,9 +155,9 @@ public class WebSocket extends Transport {
public void call(Object packet) { public void call(Object packet) {
try { try {
if (packet instanceof String) { 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[]) { } 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) { } catch (IOException e) {
logger.fine("websocket closed before onclose event"); logger.fine("websocket closed before onclose event");