@@ -40,6 +40,7 @@ public class EzySocketProxy
4040 private readonly IDictionary < Object , EventHandler > disconnectedHandlers ;
4141 private readonly IDictionary < Object , EventHandler > reconnectingHandlers ;
4242 private readonly IDictionary < Object , EventHandler > pingLostHandlers ;
43+ private readonly IDictionary < Object , EventHandler > tryConnectHandlers ;
4344
4445 public EzySocketProxy (
4546 String zoneName ,
@@ -60,6 +61,7 @@ EzyAppFactory appFactory
6061 this . disconnectedHandlers = new Dictionary < Object , EventHandler > ( ) ;
6162 this . reconnectingHandlers = new Dictionary < Object , EventHandler > ( ) ;
6263 this . pingLostHandlers = new Dictionary < Object , EventHandler > ( ) ;
64+ this . tryConnectHandlers = new Dictionary < Object , EventHandler > ( ) ;
6365 }
6466
6567 public EzySocketProxy setHost ( String host )
@@ -195,6 +197,7 @@ private void init()
195197 client . setup ( )
196198 . addEventHandler ( EzyEventType . DISCONNECTION , new DisconnectionHandler ( this ) )
197199 . addEventHandler ( EzyEventType . LOST_PING , new PingLostHandler ( this ) )
200+ . addEventHandler ( EzyEventType . TRY_CONNECT , new TryConnectHandler ( this ) )
198201 . addDataHandler ( EzyCommand . HANDSHAKE , new HandshakeEventHandler ( this ) )
199202 . addDataHandler ( EzyCommand . LOGIN , new LoginSuccessHandler ( this ) )
200203 . addDataHandler ( EzyCommand . LOGIN_ERROR , new LoginErrorHandler ( this ) )
@@ -303,6 +306,18 @@ EzySocketProxyEventHandler<EzyLostPingEvent> handler
303306 return handler ;
304307 }
305308
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+
306321 public void unbind ( Object handler )
307322 {
308323 loginSuccessHandlers . Remove ( handler ) ;
@@ -312,6 +327,7 @@ public void unbind(Object handler)
312327 disconnectedHandlers . Remove ( handler ) ;
313328 reconnectingHandlers . Remove ( handler ) ;
314329 pingLostHandlers . Remove ( handler ) ;
330+ tryConnectHandlers . Remove ( handler ) ;
315331 }
316332
317333 public class HandshakeEventHandler : EzyHandshakeHandler
@@ -508,6 +524,24 @@ protected override void process(EzyLostPingEvent evt)
508524 }
509525 }
510526 }
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+ }
511545 }
512546}
513547
0 commit comments