Merge branch 'master' into fix/compatible-v2

This commit is contained in:
nkzawa
2017-07-14 14:20:39 +09:00
6 changed files with 50 additions and 31 deletions

View File

@@ -21,7 +21,7 @@ Add the following dependency to your `pom.xml`.
<dependency> <dependency>
<groupId>io.socket</groupId> <groupId>io.socket</groupId>
<artifactId>socket.io-client</artifactId> <artifactId>socket.io-client</artifactId>
<version>0.8.3</version> <version>0.9.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
``` ```
@@ -30,7 +30,7 @@ Add the following dependency to your `pom.xml`.
Add it as a gradle dependency for Android Studio, in `build.gradle`: Add it as a gradle dependency for Android Studio, in `build.gradle`:
```groovy ```groovy
compile ('io.socket:socket.io-client:0.8.3') { compile ('io.socket:socket.io-client:0.9.0') {
// excluding org.json which is provided by Android // excluding org.json which is provided by Android
exclude group: 'org.json', module: 'json' exclude group: 'org.json', module: 'json'
} }
@@ -131,8 +131,8 @@ OkHttpClient okHttpClient = new OkHttpClient.Builder()
.build(); .build();
// default settings for all sockets // default settings for all sockets
Socket.setDefaultOkHttpWebSocketFactory(okHttpClient); IO.setDefaultOkHttpWebSocketFactory(okHttpClient);
Socket.setDefaultOkHttpCallFactory(okHttpClient); IO.setDefaultOkHttpCallFactory(okHttpClient);
// set as an option // set as an option
opts = new IO.Options(); opts = new IO.Options();

View File

@@ -6,6 +6,7 @@ import okhttp3.Call;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.WebSocket; import okhttp3.WebSocket;
import java.util.logging.Level;
import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import java.net.URI; import java.net.URI;
@@ -75,11 +76,15 @@ public class IO {
Manager io; Manager io;
if (newConnection) { if (newConnection) {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("ignoring socket cache for %s", source)); logger.fine(String.format("ignoring socket cache for %s", source));
}
io = new Manager(source, opts); io = new Manager(source, opts);
} else { } else {
if (!managers.containsKey(id)) { if (!managers.containsKey(id)) {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("new io instance for %s", source)); logger.fine(String.format("new io instance for %s", source));
}
managers.putIfAbsent(id, new Manager(source, opts)); managers.putIfAbsent(id, new Manager(source, opts));
} }
io = managers.get(id); io = managers.get(id);

View File

@@ -259,10 +259,14 @@ public class Manager extends Emitter {
EventThread.exec(new Runnable() { EventThread.exec(new Runnable() {
@Override @Override
public void run() { public void run() {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("readyState %s", Manager.this.readyState)); logger.fine(String.format("readyState %s", Manager.this.readyState));
}
if (Manager.this.readyState == ReadyState.OPEN || Manager.this.readyState == ReadyState.OPENING) return; if (Manager.this.readyState == ReadyState.OPEN || Manager.this.readyState == ReadyState.OPENING) return;
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("opening %s", Manager.this.uri)); logger.fine(String.format("opening %s", Manager.this.uri));
}
Manager.this.engine = new Engine(Manager.this.uri, Manager.this.opts); Manager.this.engine = new Engine(Manager.this.uri, Manager.this.opts);
final io.socket.engineio.client.Socket socket = Manager.this.engine; final io.socket.engineio.client.Socket socket = Manager.this.engine;
final Manager self = Manager.this; final Manager self = Manager.this;
@@ -467,7 +471,9 @@ public class Manager extends Emitter {
} }
/*package*/ void packet(Packet packet) { /*package*/ void packet(Packet packet) {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("writing packet %s", packet)); logger.fine(String.format("writing packet %s", packet));
}
final Manager self = this; final Manager self = this;
if (packet.query != null && !packet.query.isEmpty() && packet.type == Parser.CONNECT) { if (packet.query != null && !packet.query.isEmpty() && packet.type == Parser.CONNECT) {

View File

@@ -262,7 +262,9 @@ public class Socket extends Emitter {
} }
private void onclose(String reason) { private void onclose(String reason) {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("close (%s)", reason)); logger.fine(String.format("close (%s)", reason));
}
this.connected = false; this.connected = false;
this.id = null; this.id = null;
this.emit(EVENT_DISCONNECT, reason); this.emit(EVENT_DISCONNECT, reason);
@@ -316,7 +318,9 @@ public class Socket extends Emitter {
private void onevent(Packet<JSONArray> packet) { private void onevent(Packet<JSONArray> packet) {
List<Object> args = new ArrayList<Object>(Arrays.asList(toArray(packet.data))); List<Object> args = new ArrayList<Object>(Arrays.asList(toArray(packet.data)));
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("emitting event %s", args)); logger.fine(String.format("emitting event %s", args));
}
if (packet.id >= 0) { if (packet.id >= 0) {
logger.fine("attaching ack callback to event"); logger.fine("attaching ack callback to event");
@@ -343,7 +347,9 @@ public class Socket extends Emitter {
public void run() { public void run() {
if (sent[0]) return; if (sent[0]) return;
sent[0] = true; sent[0] = true;
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("sending ack %s", args.length != 0 ? args : null)); logger.fine(String.format("sending ack %s", args.length != 0 ? args : null));
}
JSONArray jsonArgs = new JSONArray(); JSONArray jsonArgs = new JSONArray();
for (Object arg : args) { for (Object arg : args) {
@@ -362,12 +368,16 @@ public class Socket extends Emitter {
private void onack(Packet<JSONArray> packet) { private void onack(Packet<JSONArray> packet) {
Ack fn = this.acks.remove(packet.id); Ack fn = this.acks.remove(packet.id);
if (fn != null) { if (fn != null) {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("calling ack %s with %s", packet.id, packet.data)); logger.fine(String.format("calling ack %s with %s", packet.id, packet.data));
}
fn.call(toArray(packet.data)); fn.call(toArray(packet.data));
} else { } else {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("bad ack %s", packet.id)); logger.fine(String.format("bad ack %s", packet.id));
} }
} }
}
private void onconnect() { private void onconnect() {
this.connected = true; this.connected = true;
@@ -391,7 +401,9 @@ public class Socket extends Emitter {
} }
private void ondisconnect() { private void ondisconnect() {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("server disconnect (%s)", this.nsp)); logger.fine(String.format("server disconnect (%s)", this.nsp));
}
this.destroy(); this.destroy();
this.onclose("io server disconnect"); this.onclose("io server disconnect");
} }
@@ -418,7 +430,9 @@ public class Socket extends Emitter {
@Override @Override
public void run() { public void run() {
if (Socket.this.connected) { if (Socket.this.connected) {
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("performing disconnect (%s)", Socket.this.nsp)); logger.fine(String.format("performing disconnect (%s)", Socket.this.nsp));
}
Socket.this.packet(new Packet(Parser.DISCONNECT)); Socket.this.packet(new Packet(Parser.DISCONNECT));
} }

View File

@@ -1,6 +1,5 @@
package io.socket.parser; package io.socket.parser;
import io.socket.client.IO;
import io.socket.hasbinary.HasBinary; import io.socket.hasbinary.HasBinary;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONTokener; import org.json.JSONTokener;
@@ -31,7 +30,9 @@ final public class IOParser implements Parser {
obj.type = obj.type == EVENT ? BINARY_EVENT : BINARY_ACK; obj.type = obj.type == EVENT ? BINARY_EVENT : BINARY_ACK;
} }
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("encoding packet %s", obj)); logger.fine(String.format("encoding packet %s", obj));
}
if (BINARY_EVENT == obj.type || BINARY_ACK == obj.type) { if (BINARY_EVENT == obj.type || BINARY_ACK == obj.type) {
encodeAsBinary(obj, callback); encodeAsBinary(obj, callback);
@@ -62,7 +63,9 @@ final public class IOParser implements Parser {
str.append(obj.data); str.append(obj.data);
} }
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("encoded %s as %s", obj, str)); logger.fine(String.format("encoded %s as %s", obj, str));
}
return str.toString(); return str.toString();
} }
@@ -182,7 +185,9 @@ final public class IOParser implements Parser {
} }
} }
if (logger.isLoggable(Level.FINE)) {
logger.fine(String.format("decoded %s as %s", str, p)); logger.fine(String.format("decoded %s as %s", str, p));
}
return p; return p;
} }

View File

@@ -1,16 +1,5 @@
package io.socket.parser; package io.socket.parser;
import io.socket.emitter.Emitter;
import io.socket.hasbinary.HasBinary;
import org.json.JSONException;
import org.json.JSONTokener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public interface Parser { public interface Parser {
/** /**