@@ -40,6 +40,7 @@ public class EzySocketProxy
40
40
private readonly IDictionary < Object , EventHandler > disconnectedHandlers ;
41
41
private readonly IDictionary < Object , EventHandler > reconnectingHandlers ;
42
42
private readonly IDictionary < Object , EventHandler > pingLostHandlers ;
43
+ private readonly IDictionary < Object , EventHandler > tryConnectHandlers ;
43
44
44
45
public EzySocketProxy (
45
46
String zoneName ,
@@ -60,6 +61,7 @@ EzyAppFactory appFactory
60
61
this . disconnectedHandlers = new Dictionary < Object , EventHandler > ( ) ;
61
62
this . reconnectingHandlers = new Dictionary < Object , EventHandler > ( ) ;
62
63
this . pingLostHandlers = new Dictionary < Object , EventHandler > ( ) ;
64
+ this . tryConnectHandlers = new Dictionary < Object , EventHandler > ( ) ;
63
65
}
64
66
65
67
public EzySocketProxy setHost ( String host )
@@ -195,6 +197,7 @@ private void init()
195
197
client . setup ( )
196
198
. addEventHandler ( EzyEventType . DISCONNECTION , new DisconnectionHandler ( this ) )
197
199
. addEventHandler ( EzyEventType . LOST_PING , new PingLostHandler ( this ) )
200
+ . addEventHandler ( EzyEventType . TRY_CONNECT , new TryConnectHandler ( this ) )
198
201
. addDataHandler ( EzyCommand . HANDSHAKE , new HandshakeEventHandler ( this ) )
199
202
. addDataHandler ( EzyCommand . LOGIN , new LoginSuccessHandler ( this ) )
200
203
. addDataHandler ( EzyCommand . LOGIN_ERROR , new LoginErrorHandler ( this ) )
@@ -303,6 +306,18 @@ EzySocketProxyEventHandler<EzyLostPingEvent> handler
303
306
return handler ;
304
307
}
305
308
309
+ public Object onTryConnect (
310
+ EzySocketProxyEventHandler < EzyTryConnectEvent > handler
311
+ )
312
+ {
313
+ EventHandler dataHandler = evt =>
314
+ {
315
+ handler . Invoke ( this , ( EzyTryConnectEvent ) evt ) ;
316
+ } ;
317
+ tryConnectHandlers [ handler ] = dataHandler ;
318
+ return handler ;
319
+ }
320
+
306
321
public void unbind ( Object handler )
307
322
{
308
323
loginSuccessHandlers . Remove ( handler ) ;
@@ -312,6 +327,7 @@ public void unbind(Object handler)
312
327
disconnectedHandlers . Remove ( handler ) ;
313
328
reconnectingHandlers . Remove ( handler ) ;
314
329
pingLostHandlers . Remove ( handler ) ;
330
+ tryConnectHandlers . Remove ( handler ) ;
315
331
}
316
332
317
333
public class HandshakeEventHandler : EzyHandshakeHandler
@@ -508,6 +524,24 @@ protected override void process(EzyLostPingEvent evt)
508
524
}
509
525
}
510
526
}
527
+
528
+ public class TryConnectHandler : EzyAbstractEventHandler < EzyTryConnectEvent >
529
+ {
530
+ private readonly EzySocketProxy parent ;
531
+
532
+ public TryConnectHandler ( EzySocketProxy parent )
533
+ {
534
+ this . parent = parent ;
535
+ }
536
+
537
+ protected override void process ( EzyTryConnectEvent evt )
538
+ {
539
+ foreach ( EventHandler handler in parent . tryConnectHandlers . Values )
540
+ {
541
+ handler . Invoke ( evt ) ;
542
+ }
543
+ }
544
+ }
511
545
}
512
546
}
513
547
0 commit comments