25
25
26
26
public class SocketIOTests extends TestCase {
27
27
public static final long TIMEOUT = 10000L ;
28
-
29
-
28
+
29
+ @ Override
30
+ protected void tearDown () throws Exception {
31
+ super .tearDown ();
32
+ AsyncServer .getDefault ().stop ();
33
+ }
34
+
30
35
class TriggerFuture extends SimpleFuture <Boolean > {
31
36
public void trigger (boolean val ) {
32
37
setComplete (val );
@@ -88,7 +93,7 @@ public void onString(String string, Acknowledge acknowledge) {
88
93
});
89
94
assertTrue (trigger .get (TIMEOUT , TimeUnit .MILLISECONDS ));
90
95
}
91
-
96
+
92
97
public void testEchoServer () throws Exception {
93
98
final TriggerFuture trigger1 = new TriggerFuture ();
94
99
final TriggerFuture trigger2 = new TriggerFuture ();
@@ -136,12 +141,44 @@ public void onJSON(JSONObject json, Acknowledge acknowledge) {
136
141
public void testReconnect () throws Exception {
137
142
final TriggerFuture disconnectTrigger = new TriggerFuture ();
138
143
final TriggerFuture reconnectTrigger = new TriggerFuture ();
144
+ final TriggerFuture endpointReconnectTrigger = new TriggerFuture ();
145
+ final TriggerFuture echoTrigger = new TriggerFuture ();
139
146
140
- SocketIOClient .connect (AsyncHttpClient .getDefaultInstance (), "http://koush.clockworkmod.com:8080" , new ConnectCallback () {
147
+ SocketIORequest req = new SocketIORequest ("http://koush.clockworkmod.com:8080" );
148
+ req .setLogging ("socket.io" , Log .VERBOSE );
149
+ SocketIOClient .connect (AsyncHttpClient .getDefaultInstance (), req , new ConnectCallback () {
141
150
@ Override
142
151
public void onConnectCompleted (Exception ex , final SocketIOClient client ) {
143
152
assertNull (ex );
144
153
154
+ client .of ("/chat" , new ConnectCallback () {
155
+ @ Override
156
+ public void onConnectCompleted (Exception ex , final SocketIOClient client ) {
157
+ client .setReconnectCallback (new ReconnectCallback () {
158
+ @ Override
159
+ public void onReconnect () {
160
+ client .emit ("hello" );
161
+ endpointReconnectTrigger .trigger (true );
162
+ }
163
+ });
164
+
165
+ client .setStringCallback (new StringCallback () {
166
+ @ Override
167
+ public void onString (String string , Acknowledge acknowledge ) {
168
+ echoTrigger .trigger ("hello" .equals (string ));
169
+ }
170
+ });
171
+
172
+ AsyncServer .getDefault ().postDelayed (new Runnable () {
173
+ @ Override
174
+ public void run () {
175
+ // this will trigger a reconnect
176
+ client .getWebSocket ().close ();
177
+ }
178
+ }, 200 );
179
+ }
180
+ });
181
+
145
182
client .setDisconnectCallback (new DisconnectCallback () {
146
183
@ Override
147
184
public void onDisconnect (Exception e ) {
@@ -155,19 +192,13 @@ public void onReconnect() {
155
192
reconnectTrigger .trigger (true );
156
193
}
157
194
});
158
-
159
- AsyncServer .getDefault ().postDelayed (new Runnable () {
160
- @ Override
161
- public void run () {
162
- // this will trigger a reconnect
163
- client .getWebSocket ().close ();
164
- }
165
- }, 200 );
166
195
}
167
196
});
168
197
169
198
assertTrue (disconnectTrigger .get (TIMEOUT , TimeUnit .MILLISECONDS ));
170
199
assertTrue (reconnectTrigger .get (TIMEOUT , TimeUnit .MILLISECONDS ));
200
+ assertTrue (endpointReconnectTrigger .get (TIMEOUT , TimeUnit .MILLISECONDS ));
201
+ assertTrue (echoTrigger .get (TIMEOUT , TimeUnit .MILLISECONDS ));
171
202
}
172
203
173
204
public void testEventAck () throws Exception {
0 commit comments