compatible with socket.io-client 1.1.0
This commit is contained in:
4
pom.xml
4
pom.xml
@@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.github.nkzawa</groupId>
|
<groupId>com.github.nkzawa</groupId>
|
||||||
<artifactId>socket.io-client</artifactId>
|
<artifactId>socket.io-client</artifactId>
|
||||||
<version>0.1.4-SNAPSHOT</version>
|
<version>0.2.0-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<name>socket.io-client</name>
|
<name>socket.io-client</name>
|
||||||
<description>Socket.IO Client Library for Java</description>
|
<description>Socket.IO Client Library for Java</description>
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.nkzawa</groupId>
|
<groupId>com.github.nkzawa</groupId>
|
||||||
<artifactId>engine.io-client</artifactId>
|
<artifactId>engine.io-client</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.3.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.json</groupId>
|
<groupId>org.json</groupId>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.github.nkzawa.hasbinarydata;
|
package com.github.nkzawa.hasbinary;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
@@ -6,15 +6,15 @@ import org.json.JSONObject;
|
|||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
public class HasBinaryData {
|
public class HasBinary {
|
||||||
|
|
||||||
private HasBinaryData() {}
|
private HasBinary() {}
|
||||||
|
|
||||||
public static boolean hasBinary(Object data) {
|
public static boolean hasBinary(Object data) {
|
||||||
return recursiveCheckForBinary(data);
|
return _hasBinary(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean recursiveCheckForBinary(Object obj) {
|
private static boolean _hasBinary(Object obj) {
|
||||||
if (obj == null) return false;
|
if (obj == null) return false;
|
||||||
|
|
||||||
if (obj instanceof byte[]) {
|
if (obj instanceof byte[]) {
|
||||||
@@ -31,7 +31,7 @@ public class HasBinaryData {
|
|||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (recursiveCheckForBinary(v)) {
|
if (_hasBinary(v)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ public class HasBinaryData {
|
|||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (recursiveCheckForBinary(v)) {
|
if (_hasBinary(v)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,8 @@ public class Manager extends Emitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void maybeReconnectOnOpen() {
|
private void maybeReconnectOnOpen() {
|
||||||
if (!this.openReconnect && !this.reconnecting && this._reconnection) {
|
// Only try to reconnect if it's the first time we're connecting
|
||||||
|
if (!this.openReconnect && !this.reconnecting && this._reconnection && this.attempts == 0) {
|
||||||
this.openReconnect = true;
|
this.openReconnect = true;
|
||||||
this.reconnect();
|
this.reconnect();
|
||||||
}
|
}
|
||||||
@@ -425,7 +426,7 @@ public class Manager extends Emitter {
|
|||||||
while ((sub = this.subs.poll()) != null) sub.destroy();
|
while ((sub = this.subs.poll()) != null) sub.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void close() {
|
/*package*/ void close() {
|
||||||
this.skipReconnect = true;
|
this.skipReconnect = true;
|
||||||
this.engine.close();
|
this.engine.close();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.github.nkzawa.socketio.client;
|
package com.github.nkzawa.socketio.client;
|
||||||
|
|
||||||
import com.github.nkzawa.emitter.Emitter;
|
import com.github.nkzawa.emitter.Emitter;
|
||||||
import com.github.nkzawa.hasbinarydata.HasBinaryData;
|
import com.github.nkzawa.hasbinary.HasBinary;
|
||||||
import com.github.nkzawa.socketio.parser.Packet;
|
import com.github.nkzawa.socketio.parser.Packet;
|
||||||
import com.github.nkzawa.socketio.parser.Parser;
|
import com.github.nkzawa.socketio.parser.Parser;
|
||||||
import com.github.nkzawa.thread.EventThread;
|
import com.github.nkzawa.thread.EventThread;
|
||||||
@@ -173,7 +173,7 @@ public class Socket extends Emitter {
|
|||||||
jsonArgs.put(arg);
|
jsonArgs.put(arg);
|
||||||
}
|
}
|
||||||
int parserType = Parser.EVENT;
|
int parserType = Parser.EVENT;
|
||||||
if (HasBinaryData.hasBinary(jsonArgs)) { parserType = Parser.BINARY_EVENT; }
|
if (HasBinary.hasBinary(jsonArgs)) { parserType = Parser.BINARY_EVENT; }
|
||||||
Packet<JSONArray> packet = new Packet<JSONArray>(parserType, jsonArgs);
|
Packet<JSONArray> packet = new Packet<JSONArray>(parserType, jsonArgs);
|
||||||
|
|
||||||
if (_args.get(_args.size() - 1) instanceof Ack) {
|
if (_args.get(_args.size() - 1) instanceof Ack) {
|
||||||
@@ -324,7 +324,7 @@ public class Socket extends Emitter {
|
|||||||
sent[0] = true;
|
sent[0] = true;
|
||||||
logger.fine(String.format("sending ack %s", args.length != 0 ? args : null));
|
logger.fine(String.format("sending ack %s", args.length != 0 ? args : null));
|
||||||
|
|
||||||
int type = HasBinaryData.hasBinary(args) ? Parser.BINARY_ACK : Parser.ACK;
|
int type = HasBinary.hasBinary(args) ? Parser.BINARY_ACK : Parser.ACK;
|
||||||
Packet<JSONArray> packet = new Packet<JSONArray>(type, new JSONArray(Arrays.asList(args)));
|
Packet<JSONArray> packet = new Packet<JSONArray>(type, new JSONArray(Arrays.asList(args)));
|
||||||
packet.id = id;
|
packet.id = id;
|
||||||
self.packet(packet);
|
self.packet(packet);
|
||||||
|
|||||||
73
src/test/java/com/github/nkzawa/hasbinary/HasBinaryTest.java
Normal file
73
src/test/java/com/github/nkzawa/hasbinary/HasBinaryTest.java
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
package com.github.nkzawa.hasbinary;
|
||||||
|
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.JUnit4;
|
||||||
|
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
@RunWith(JUnit4.class)
|
||||||
|
public class HasBinaryTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void byteArray() {
|
||||||
|
assertTrue(HasBinary.hasBinary(new byte[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void anArrayThatDoesNotContainByteArray() throws JSONException {
|
||||||
|
JSONArray arr = new JSONArray("[1, \"cool\", 2]");
|
||||||
|
assertTrue(!HasBinary.hasBinary(arr));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void anArrayContainsByteArray() throws JSONException {
|
||||||
|
JSONArray arr = new JSONArray("[1, null, 2]");
|
||||||
|
arr.put(1, "asdfasdf".getBytes(Charset.forName("UTF-8")));
|
||||||
|
assertTrue(HasBinary.hasBinary(arr));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void anObjectThatDoesNotContainByteArray() throws JSONException {
|
||||||
|
JSONObject ob = new JSONObject("{\"a\": \"a\", \"b\": [], \"c\": 1234}");
|
||||||
|
assertTrue(!HasBinary.hasBinary(ob));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void anObjectThatContainsByteArray() throws JSONException {
|
||||||
|
JSONObject ob = new JSONObject("{\"a\": \"a\", \"b\": null, \"c\": 1234}");
|
||||||
|
ob.put("b", "abc".getBytes(Charset.forName("UTF-8")));
|
||||||
|
assertTrue(HasBinary.hasBinary(ob));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNull() {
|
||||||
|
assertTrue(!HasBinary.hasBinary(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void aComplexObjectThatContainsNoBinary() throws JSONException {
|
||||||
|
JSONObject ob = new JSONObject();
|
||||||
|
ob.put("x", new JSONArray("[\"a\", \"b\", 123]"));
|
||||||
|
ob.put("y", JSONObject.NULL);
|
||||||
|
ob.put("z", new JSONObject("{\"a\": \"x\", \"b\": \"y\", \"c\": 3, \"d\": null}"));
|
||||||
|
ob.put("w", new JSONArray());
|
||||||
|
assertTrue(!HasBinary.hasBinary(ob));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void aComplexObjectThatContainsBinary() throws JSONException {
|
||||||
|
JSONObject ob = new JSONObject();
|
||||||
|
ob.put("x", new JSONArray("[\"a\", \"b\", 123]"));
|
||||||
|
ob.put("y", JSONObject.NULL);
|
||||||
|
ob.put("z", new JSONObject("{\"a\": \"x\", \"b\": \"y\", \"c\": 3, \"d\": null}"));
|
||||||
|
ob.put("w", new JSONArray());
|
||||||
|
ob.put("bin", "xxx".getBytes(Charset.forName("UTF-8")));
|
||||||
|
assertTrue(HasBinary.hasBinary(ob));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
package com.github.nkzawa.hasbinarydata;
|
|
||||||
|
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.junit.runners.JUnit4;
|
|
||||||
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
@RunWith(JUnit4.class)
|
|
||||||
public class HasBinaryDataTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void arrayContainsByteArray() throws Exception {
|
|
||||||
JSONArray arr = new JSONArray("[1, null, 2]");
|
|
||||||
arr.put(1, "asdfasdf".getBytes(Charset.forName("UTF-8")));
|
|
||||||
assertTrue(HasBinaryData.hasBinary(arr));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void byteArray() {
|
|
||||||
assertTrue(HasBinaryData.hasBinary(new byte[0]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -11,7 +11,7 @@ import java.util.concurrent.*;
|
|||||||
|
|
||||||
public abstract class Connection {
|
public abstract class Connection {
|
||||||
|
|
||||||
final static int TIMEOUT = 3000;
|
final static int TIMEOUT = 7000;
|
||||||
final static int PORT = 3000;
|
final static int PORT = 3000;
|
||||||
|
|
||||||
private Process serverProcess;
|
private Process serverProcess;
|
||||||
|
|||||||
@@ -144,7 +144,6 @@ public class ConnectionTest extends Connection {
|
|||||||
};
|
};
|
||||||
|
|
||||||
socket = client();
|
socket = client();
|
||||||
final int[] i = new int[] {0};
|
|
||||||
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
|
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... objects) {
|
public void call(Object... objects) {
|
||||||
@@ -178,8 +177,39 @@ public class ConnectionTest extends Connection {
|
|||||||
foo.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
|
foo.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... args) {
|
public void call(Object... args) {
|
||||||
values.offer("done");
|
|
||||||
foo.close();
|
foo.close();
|
||||||
|
socket.close();
|
||||||
|
manager.close();
|
||||||
|
values.offer("done");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
foo.open();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
socket.open();
|
||||||
|
values.take();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(timeout = TIMEOUT)
|
||||||
|
public void connectToNamespaceAfterConnectionGetsClosed() throws URISyntaxException, InterruptedException {
|
||||||
|
final BlockingQueue<Object> values = new LinkedBlockingQueue<Object>();
|
||||||
|
final Manager manager = new Manager(new URI(uri()));
|
||||||
|
socket = manager.socket("/");
|
||||||
|
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
|
||||||
|
@Override
|
||||||
|
public void call(Object... objects) {
|
||||||
|
socket.close();
|
||||||
|
}
|
||||||
|
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
|
||||||
|
@Override
|
||||||
|
public void call(Object... objects) {
|
||||||
|
final Socket foo = manager.socket("/foo");
|
||||||
|
foo.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
|
||||||
|
@Override
|
||||||
|
public void call(Object... args) {
|
||||||
|
foo.close();
|
||||||
|
manager.close();
|
||||||
|
values.offer("done");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
foo.open();
|
foo.open();
|
||||||
@@ -187,7 +217,6 @@ public class ConnectionTest extends Connection {
|
|||||||
});
|
});
|
||||||
socket.open();
|
socket.open();
|
||||||
values.take();
|
values.take();
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
@@ -197,6 +226,7 @@ public class ConnectionTest extends Connection {
|
|||||||
socket.io().on(Manager.EVENT_RECONNECT, new Emitter.Listener() {
|
socket.io().on(Manager.EVENT_RECONNECT, new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... objects) {
|
public void call(Object... objects) {
|
||||||
|
socket.close();
|
||||||
values.offer("done");
|
values.offer("done");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -208,7 +238,6 @@ public class ConnectionTest extends Connection {
|
|||||||
}
|
}
|
||||||
}, 500);
|
}, 500);
|
||||||
values.take();
|
values.take();
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
@@ -239,7 +268,7 @@ public class ConnectionTest extends Connection {
|
|||||||
opts.reconnection = true;
|
opts.reconnection = true;
|
||||||
opts.reconnectionAttempts = 2;
|
opts.reconnectionAttempts = 2;
|
||||||
opts.reconnectionDelay = 10;
|
opts.reconnectionDelay = 10;
|
||||||
Manager manager = new Manager(new URI("http://localhost:3940"), opts);
|
final Manager manager = new Manager(new URI("http://localhost:3940"), opts);
|
||||||
socket = manager.socket("/asd");
|
socket = manager.socket("/asd");
|
||||||
final int[] reconnects = new int[] {0};
|
final int[] reconnects = new int[] {0};
|
||||||
Emitter.Listener cb = new Emitter.Listener() {
|
Emitter.Listener cb = new Emitter.Listener() {
|
||||||
@@ -254,13 +283,14 @@ public class ConnectionTest extends Connection {
|
|||||||
manager.on(Manager.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
manager.on(Manager.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... objects) {
|
public void call(Object... objects) {
|
||||||
|
socket.close();
|
||||||
|
manager.close();
|
||||||
values.offer(reconnects[0]);
|
values.offer(reconnects[0]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.open();
|
socket.open();
|
||||||
assertThat((Integer)values.take(), is(2));
|
assertThat((Integer)values.take(), is(2));
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
@@ -271,7 +301,7 @@ public class ConnectionTest extends Connection {
|
|||||||
opts.timeout = 0;
|
opts.timeout = 0;
|
||||||
opts.reconnectionAttempts = 2;
|
opts.reconnectionAttempts = 2;
|
||||||
opts.reconnectionDelay = 10;
|
opts.reconnectionDelay = 10;
|
||||||
Manager manager = new Manager(new URI(uri()), opts);
|
final Manager manager = new Manager(new URI(uri()), opts);
|
||||||
|
|
||||||
final int[] reconnects = new int[] {0};
|
final int[] reconnects = new int[] {0};
|
||||||
Emitter.Listener reconnectCb = new Emitter.Listener() {
|
Emitter.Listener reconnectCb = new Emitter.Listener() {
|
||||||
@@ -285,6 +315,8 @@ public class ConnectionTest extends Connection {
|
|||||||
manager.on(Manager.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
manager.on(Manager.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... objects) {
|
public void call(Object... objects) {
|
||||||
|
socket.close();
|
||||||
|
manager.close();
|
||||||
values.offer(reconnects[0]);
|
values.offer(reconnects[0]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -292,7 +324,6 @@ public class ConnectionTest extends Connection {
|
|||||||
socket = manager.socket("/timeout");
|
socket = manager.socket("/timeout");
|
||||||
socket.open();
|
socket.open();
|
||||||
assertThat((Integer)values.take(), is(2));
|
assertThat((Integer)values.take(), is(2));
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
@@ -300,7 +331,7 @@ public class ConnectionTest extends Connection {
|
|||||||
final BlockingQueue<Object> values = new LinkedBlockingQueue<Object>();
|
final BlockingQueue<Object> values = new LinkedBlockingQueue<Object>();
|
||||||
IO.Options opts = new IO.Options();
|
IO.Options opts = new IO.Options();
|
||||||
opts.reconnection = false;
|
opts.reconnection = false;
|
||||||
Manager manager = new Manager(new URI("http://localhost:9823"), opts);
|
final Manager manager = new Manager(new URI("http://localhost:9823"), opts);
|
||||||
Emitter.Listener cb = new Emitter.Listener() {
|
Emitter.Listener cb = new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... objects) {
|
public void call(Object... objects) {
|
||||||
@@ -316,6 +347,8 @@ public class ConnectionTest extends Connection {
|
|||||||
timer.schedule(new TimerTask() {
|
timer.schedule(new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
socket.close();
|
||||||
|
manager.close();
|
||||||
values.offer("done");
|
values.offer("done");
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
@@ -325,7 +358,6 @@ public class ConnectionTest extends Connection {
|
|||||||
socket = manager.socket("/invalid");
|
socket = manager.socket("/invalid");
|
||||||
socket.open();
|
socket.open();
|
||||||
values.take();
|
values.take();
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
@@ -337,7 +369,7 @@ public class ConnectionTest extends Connection {
|
|||||||
opts.timeout = 0;
|
opts.timeout = 0;
|
||||||
opts.reconnectionAttempts = 2;
|
opts.reconnectionAttempts = 2;
|
||||||
opts.reconnectionDelay = 10;
|
opts.reconnectionDelay = 10;
|
||||||
Manager manager = new Manager(new URI(uri()), opts);
|
final Manager manager = new Manager(new URI(uri()), opts);
|
||||||
socket = manager.socket("/timeout_socket");
|
socket = manager.socket("/timeout_socket");
|
||||||
|
|
||||||
final int[] reconnects = new int[] {0};
|
final int[] reconnects = new int[] {0};
|
||||||
@@ -353,13 +385,14 @@ public class ConnectionTest extends Connection {
|
|||||||
socket.on(Socket.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
socket.on(Socket.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... objects) {
|
public void call(Object... objects) {
|
||||||
|
socket.close();
|
||||||
|
manager.close();
|
||||||
values.offer(reconnects[0]);
|
values.offer(reconnects[0]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
socket.open();
|
socket.open();
|
||||||
assertThat((Integer)values.take(), is(reconnects[0]));
|
assertThat((Integer)values.take(), is(reconnects[0]));
|
||||||
assertThat((Integer)values.take(), is(2));
|
assertThat((Integer)values.take(), is(2));
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
@@ -371,7 +404,7 @@ public class ConnectionTest extends Connection {
|
|||||||
opts.timeout = 0;
|
opts.timeout = 0;
|
||||||
opts.reconnectionAttempts = 2;
|
opts.reconnectionAttempts = 2;
|
||||||
opts.reconnectionDelay = 10;
|
opts.reconnectionDelay = 10;
|
||||||
Manager manager = new Manager(new URI(uri()), opts);
|
final Manager manager = new Manager(new URI(uri()), opts);
|
||||||
socket = manager.socket("/timeout_socket");
|
socket = manager.socket("/timeout_socket");
|
||||||
|
|
||||||
final int[] reconnects = new int[] {0};
|
final int[] reconnects = new int[] {0};
|
||||||
@@ -387,13 +420,14 @@ public class ConnectionTest extends Connection {
|
|||||||
socket.on(Socket.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
socket.on(Socket.EVENT_RECONNECT_FAILED, new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... objects) {
|
public void call(Object... objects) {
|
||||||
|
socket.close();
|
||||||
|
manager.close();
|
||||||
values.offer(reconnects[0]);
|
values.offer(reconnects[0]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
socket.open();
|
socket.open();
|
||||||
assertThat((Integer)values.take(), is(reconnects[0]));
|
assertThat((Integer)values.take(), is(reconnects[0]));
|
||||||
assertThat((Integer)values.take(), is(2));
|
assertThat((Integer)values.take(), is(2));
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
@@ -407,15 +441,14 @@ public class ConnectionTest extends Connection {
|
|||||||
socket.on("echoBack", new Emitter.Listener() {
|
socket.on("echoBack", new Emitter.Listener() {
|
||||||
@Override
|
@Override
|
||||||
public void call(Object... args) {
|
public void call(Object... args) {
|
||||||
values.offer(args[0]);
|
|
||||||
socket.close();
|
socket.close();
|
||||||
|
values.offer(args[0]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
socket.connect();
|
socket.connect();
|
||||||
assertThat(values.take(), instanceOf(String.class));
|
assertThat(values.take(), instanceOf(String.class));
|
||||||
socket.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(timeout = TIMEOUT)
|
@Test(timeout = TIMEOUT)
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"socket.io": "1.0.6"
|
"socket.io": "1.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,22 @@ var port = process.env.PORT || 3000;
|
|||||||
var nsp = process.argv[2] || '/';
|
var nsp = process.argv[2] || '/';
|
||||||
var slice = Array.prototype.slice;
|
var slice = Array.prototype.slice;
|
||||||
|
|
||||||
|
io.of('/foo').on('connection', function() {
|
||||||
|
// register namespace
|
||||||
|
});
|
||||||
|
|
||||||
|
io.of('/timeout_socket').on('connection', function() {
|
||||||
|
// register namespace
|
||||||
|
});
|
||||||
|
|
||||||
|
io.of('/valid').on('connection', function() {
|
||||||
|
// register namespace
|
||||||
|
});
|
||||||
|
|
||||||
|
io.of('/asd').on('connection', function() {
|
||||||
|
// register namespace
|
||||||
|
});
|
||||||
|
|
||||||
io.of(nsp).on('connection', function(socket) {
|
io.of(nsp).on('connection', function(socket) {
|
||||||
socket.send('hello client');
|
socket.send('hello client');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user