diff --git a/pom.xml b/pom.xml
index 36f1881..610423d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,7 +62,7 @@
io.socket
engine.io-client
- 0.9.0
+ 1.0.0-SNAPSHOT
org.json
diff --git a/src/main/java/io/socket/client/IO.java b/src/main/java/io/socket/client/IO.java
index 6dd9758..a5455f4 100644
--- a/src/main/java/io/socket/client/IO.java
+++ b/src/main/java/io/socket/client/IO.java
@@ -3,16 +3,13 @@ package io.socket.client;
import io.socket.parser.Parser;
import okhttp3.Call;
-import okhttp3.OkHttpClient;
import okhttp3.WebSocket;
-import java.util.logging.Level;
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.SSLContext;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.logging.Level;
import java.util.logging.Logger;
diff --git a/src/main/java/io/socket/client/Manager.java b/src/main/java/io/socket/client/Manager.java
index c2946eb..6da92ee 100644
--- a/src/main/java/io/socket/client/Manager.java
+++ b/src/main/java/io/socket/client/Manager.java
@@ -2,16 +2,24 @@ package io.socket.client;
import io.socket.backo.Backoff;
import io.socket.emitter.Emitter;
+import io.socket.parser.IOParser;
import io.socket.parser.Packet;
import io.socket.parser.Parser;
import io.socket.thread.EventThread;
import okhttp3.Call;
import okhttp3.WebSocket;
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.SSLContext;
import java.net.URI;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -148,8 +156,8 @@ public class Manager extends Emitter {
this.uri = uri;
this.encoding = false;
this.packetBuffer = new ArrayList();
- this.encoder = new Parser.Encoder();
- this.decoder = new Parser.Decoder();
+ this.encoder = opts.encoder != null ? opts.encoder : new IOParser.Encoder();
+ this.decoder = opts.decoder != null ? opts.decoder : new IOParser.Decoder();
}
private void emitAll(String event, Object... args) {
@@ -163,11 +171,17 @@ public class Manager extends Emitter {
* Update `socket.id` of all sockets
*/
private void updateSocketIds() {
- for (Socket socket : this.nsps.values()) {
- socket.id = this.engine.id();
+ for (Map.Entry entry : this.nsps.entrySet()) {
+ String nsp = entry.getKey();
+ Socket socket = entry.getValue();
+ socket.id = this.generateId(nsp);
}
}
+ private String generateId(String nsp) {
+ return ("/".equals(nsp) ? "" : (nsp + "#")) + this.engine.id();
+ }
+
public boolean reconnection() {
return this._reconnection;
}
@@ -383,12 +397,12 @@ public class Manager extends Emitter {
Manager.this.onclose((String)objects[0]);
}
}));
- this.subs.add(On.on(this.decoder, Parser.Decoder.EVENT_DECODED, new Listener() {
+ this.decoder.onDecoded(new Parser.Decoder.Callback() {
@Override
- public void call(Object... objects) {
- Manager.this.ondecoded((Packet) objects[0]);
+ public void call (Packet packet) {
+ Manager.this.ondecoded(packet);
}
- }));
+ });
}
private void onping() {
@@ -425,7 +439,7 @@ public class Manager extends Emitter {
* @param opts options.
* @return a socket instance for the namespace.
*/
- public Socket socket(String nsp, Options opts) {
+ public Socket socket(final String nsp, Options opts) {
Socket socket = this.nsps.get(nsp);
if (socket == null) {
socket = new Socket(this, nsp, opts);
@@ -444,7 +458,7 @@ public class Manager extends Emitter {
socket.on(Socket.EVENT_CONNECT, new Listener() {
@Override
public void call(Object... objects) {
- s.id = self.engine.id();
+ s.id = self.generateId(nsp);
}
});
}
@@ -506,6 +520,7 @@ public class Manager extends Emitter {
On.Handle sub;
while ((sub = this.subs.poll()) != null) sub.destroy();
+ this.decoder.onDecoded(null);
this.packetBuffer.clear();
this.encoding = false;
@@ -631,6 +646,8 @@ public class Manager extends Emitter {
public long reconnectionDelay;
public long reconnectionDelayMax;
public double randomizationFactor;
+ public Parser.Encoder encoder;
+ public Parser.Decoder decoder;
/**
* Connection timeout (ms). Set -1 to disable.
diff --git a/src/main/java/io/socket/client/Socket.java b/src/main/java/io/socket/client/Socket.java
index 0f7d9fb..61baef3 100644
--- a/src/main/java/io/socket/client/Socket.java
+++ b/src/main/java/io/socket/client/Socket.java
@@ -1,7 +1,6 @@
package io.socket.client;
import io.socket.emitter.Emitter;
-import io.socket.hasbinary.HasBinary;
import io.socket.parser.Packet;
import io.socket.parser.Parser;
import io.socket.thread.EventThread;
@@ -9,7 +8,13 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -79,12 +84,12 @@ public class Socket extends Emitter {
}};
/*package*/ String id;
- /*package*/ String query;
private volatile boolean connected;
private int ids;
private String nsp;
private Manager io;
+ private String query;
private Map acks = new HashMap();
private Queue subs;
private final Queue> receiveBuffer = new LinkedList>();
@@ -182,51 +187,27 @@ public class Socket extends Emitter {
return;
}
- List