@@ -84,19 +84,31 @@ private void subEvents() {
8484
8585 final Manager io = Socket .this .io ;
8686 Socket .this .subs = new LinkedList <On .Handle >() {{
87- add (On .on (io , Manager .EVENT_OPEN , args -> {
88- Socket .this .onopen ();
87+ add (On .on (io , Manager .EVENT_OPEN , new Listener () {
88+ @ Override
89+ public void call (Object ... args ) {
90+ Socket .this .onopen ();
91+ }
8992 }));
90- add (On .on (io , Manager .EVENT_PACKET , args -> {
91- Socket .this .onpacket ((Packet <?>) args [0 ]);
93+ add (On .on (io , Manager .EVENT_PACKET , new Listener () {
94+ @ Override
95+ public void call (Object ... args ) {
96+ Socket .this .onpacket ((Packet <?>) args [0 ]);
97+ }
9298 }));
93- add (On .on (io , Manager .EVENT_ERROR , args -> {
94- if (!Socket .this .connected ) {
95- Socket .super .emit (EVENT_CONNECT_ERROR , args [0 ]);
99+ add (On .on (io , Manager .EVENT_ERROR , new Listener () {
100+ @ Override
101+ public void call (Object ... args ) {
102+ if (!Socket .this .connected ) {
103+ Socket .super .emit (EVENT_CONNECT_ERROR , args [0 ]);
104+ }
96105 }
97106 }));
98- add (On .on (io , Manager .EVENT_CLOSE , args -> {
99- Socket .this .onclose (args .length > 0 ? (String ) args [0 ] : null );
107+ add (On .on (io , Manager .EVENT_CLOSE , new Listener () {
108+ @ Override
109+ public void call (Object ... args ) {
110+ Socket .this .onclose (args .length > 0 ? (String ) args [0 ] : null );
111+ }
100112 }));
101113 }};
102114 }
@@ -133,7 +145,12 @@ public Socket connect() {
133145 * @return a reference to this object.
134146 */
135147 public Socket send (final Object ... args ) {
136- EventThread .exec (() -> Socket .this .emit (EVENT_MESSAGE , args ));
148+ EventThread .exec (new Runnable () {
149+ @ Override
150+ public void run () {
151+ Socket .this .emit (EVENT_MESSAGE , args );
152+ }
153+ });
137154 return this ;
138155 }
139156
@@ -150,23 +167,26 @@ public Emitter emit(final String event, final Object... args) {
150167 throw new RuntimeException ("'" + event + "' is a reserved event name" );
151168 }
152169
153- EventThread .exec (() -> {
154- Ack ack ;
155- Object [] _args ;
156- int lastIndex = args .length - 1 ;
157-
158- if (args .length > 0 && args [lastIndex ] instanceof Ack ) {
159- _args = new Object [lastIndex ];
160- for (int i = 0 ; i < lastIndex ; i ++) {
161- _args [i ] = args [i ];
170+ EventThread .exec (new Runnable () {
171+ @ Override
172+ public void run () {
173+ Ack ack ;
174+ Object [] _args ;
175+ int lastIndex = args .length - 1 ;
176+
177+ if (args .length > 0 && args [lastIndex ] instanceof Ack ) {
178+ _args = new Object [lastIndex ];
179+ for (int i = 0 ; i < lastIndex ; i ++) {
180+ _args [i ] = args [i ];
181+ }
182+ ack = (Ack ) args [lastIndex ];
183+ } else {
184+ _args = args ;
185+ ack = null ;
162186 }
163- ack = (Ack ) args [lastIndex ];
164- } else {
165- _args = args ;
166- ack = null ;
167- }
168187
169- emit (event , _args , ack );
188+ Socket .this .emit (event , _args , ack );
189+ }
170190 });
171191 return this ;
172192 }
@@ -180,52 +200,55 @@ public Emitter emit(final String event, final Object... args) {
180200 * @return a reference to this object.
181201 */
182202 public Emitter emit (final String event , final Object [] args , final Ack ack ) {
183- EventThread .exec (() -> {
184- JSONArray jsonArgs = new JSONArray ();
185- jsonArgs .put (event );
203+ EventThread .exec (new Runnable () {
204+ @ Override
205+ public void run () {
206+ JSONArray jsonArgs = new JSONArray ();
207+ jsonArgs .put (event );
186208
187- if (args != null ) {
188- for (Object arg : args ) {
189- jsonArgs .put (arg );
209+ if (args != null ) {
210+ for (Object arg : args ) {
211+ jsonArgs .put (arg );
212+ }
190213 }
191- }
192214
193- Packet <JSONArray > packet = new Packet <>(Parser .EVENT , jsonArgs );
215+ Packet <JSONArray > packet = new Packet <>(Parser .EVENT , jsonArgs );
194216
195- if (ack != null ) {
196- final int ackId = Socket .this .ids ;
217+ if (ack != null ) {
218+ final int ackId = Socket .this .ids ;
197219
198- logger .fine (String .format ("emitting packet with ack id %d" , ackId ));
220+ logger .fine (String .format ("emitting packet with ack id %d" , ackId ));
199221
200- if (ack instanceof AckWithTimeout ) {
201- final AckWithTimeout ackWithTimeout = (AckWithTimeout ) ack ;
202- ackWithTimeout .schedule (new TimerTask () {
203- @ Override
204- public void run () {
205- // remove the ack from the map (to prevent an actual acknowledgement)
206- acks .remove (ackId );
222+ if (ack instanceof AckWithTimeout ) {
223+ final AckWithTimeout ackWithTimeout = (AckWithTimeout ) ack ;
224+ ackWithTimeout .schedule (new TimerTask () {
225+ @ Override
226+ public void run () {
227+ // remove the ack from the map (to prevent an actual acknowledgement)
228+ acks .remove (ackId );
207229
208- // remove the packet from the buffer (if applicable)
209- Iterator <Packet <JSONArray >> iterator = sendBuffer .iterator ();
210- while (iterator .hasNext ()) {
211- if (iterator .next ().id == ackId ) {
212- iterator .remove ();
230+ // remove the packet from the buffer (if applicable)
231+ Iterator <Packet <JSONArray >> iterator = sendBuffer .iterator ();
232+ while (iterator .hasNext ()) {
233+ if (iterator .next ().id == ackId ) {
234+ iterator .remove ();
235+ }
213236 }
237+
238+ ackWithTimeout .onTimeout ();
214239 }
240+ });
241+ }
215242
216- ackWithTimeout .onTimeout ();
217- }
218- });
243+ Socket .this .acks .put (ackId , ack );
244+ packet .id = ids ++;
219245 }
220246
221- Socket .this .acks .put (ackId , ack );
222- packet .id = ids ++;
223- }
224-
225- if (Socket .this .connected ) {
226- Socket .this .packet (packet );
227- } else {
228- Socket .this .sendBuffer .add (packet );
247+ if (Socket .this .connected ) {
248+ Socket .this .packet (packet );
249+ } else {
250+ Socket .this .sendBuffer .add (packet );
251+ }
229252 }
230253 });
231254 return this ;
@@ -376,23 +399,31 @@ private void onevent(Packet<JSONArray> packet) {
376399
377400 private Ack ack (final int id ) {
378401 final Socket self = this ;
379- final boolean [] sent = new boolean []{false };
380- return args -> EventThread .exec (() -> {
381- if (sent [0 ]) return ;
382- sent [0 ] = true ;
383- if (logger .isLoggable (Level .FINE )) {
384- logger .fine (String .format ("sending ack %s" , args .length != 0 ? args : null ));
385- }
402+ final boolean [] sent = new boolean [] {false };
403+ return new Ack () {
404+ @ Override
405+ public void call (final Object ... args ) {
406+ EventThread .exec (new Runnable () {
407+ @ Override
408+ public void run () {
409+ if (sent [0 ]) return ;
410+ sent [0 ] = true ;
411+ if (logger .isLoggable (Level .FINE )) {
412+ logger .fine (String .format ("sending ack %s" , args .length != 0 ? args : null ));
413+ }
386414
387- JSONArray jsonArgs = new JSONArray ();
388- for (Object arg : args ) {
389- jsonArgs .put (arg );
390- }
415+ JSONArray jsonArgs = new JSONArray ();
416+ for (Object arg : args ) {
417+ jsonArgs .put (arg );
418+ }
391419
392- Packet <JSONArray > packet = new Packet <>(Parser .ACK , jsonArgs );
393- packet .id = id ;
394- self .packet (packet );
395- });
420+ Packet <JSONArray > packet = new Packet <>(Parser .ACK , jsonArgs );
421+ packet .id = id ;
422+ self .packet (packet );
423+ }
424+ });
425+ }
426+ };
396427 }
397428
398429 private void onack (Packet <JSONArray > packet ) {
0 commit comments