/* Ċ Ġ* ĠÂ© Ġ 2 0 1 8 ĠMatch ĠGroup , ĠLLC . Ċ Ġ*/ Ċ Ċ package Ġcom . t inder . sc ar let . socket io . mock server Ċ Ċ import Ġcom . cor und um studio . socket io . Configuration Ċ import Ġcom . cor und um studio . socket io . Socket IO Server Ċ import Ġcom . t inder . sc ar let . Channel Ċ import Ġcom . t inder . sc ar let . Message Ċ import Ġcom . t inder . sc ar let . Message Queue Ċ import Ġcom . t inder . sc ar let . Protocol Ċ import Ġcom . t inder . sc ar let . Protocol Specific Event Adapter Ċ import Ġcom . t inder . sc ar let . socket io . Socket Io Event Ċ import Ġcom . t inder . sc ar let . utils . Simple Channel Factory Ċ Ċ class ĠMock Socket Io Server ( ĊĠĠĠ Ġprivate Ġval Ġconfiguration : ĠConfiguration Ġ= ĠConfiguration () Ċ ) Ġ: ĠProtocol Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Channel Factory (): ĠChannel . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSimple Channel Factory Ġ{ Ġlistener , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocket Io Main Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Event Adapter Factory (): ĠProtocol Specific Event Adapter . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSocket Io Event . Adapter . Factory () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSocket Io Event Name ( ĊĠĠĠ Ġprivate Ġval ĠeventName : ĠString Ċ ) Ġ: ĠProtocol Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Channel Factory (): ĠChannel . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSimple Channel Factory Ġ{ Ġlistener , Ġparent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( parent Ġis ĠSocket Io Main Channel ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocket Io Message Channel ( parent , ĠeventName , Ġlistener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Event Adapter Factory (): ĠProtocol Specific Event Adapter . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSocket Io Event . Adapter . Factory () ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠSocket Io Main Channel ( ĊĠĠĠ Ġval Ġconfiguration : ĠConfiguration , ĊĠĠĠ Ġprivate Ġval Ġlistener : ĠChannel . Listener Ċ ) Ġ: ĠChannel Ġ{ ĊĊĠĠĠ Ġvar Ġsocket Io Server : ĠSocket IO Server ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġopen ( open Request : ĠProtocol . Open Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsocket Io Server Ġ= ĠSocket IO Server ( configuration ) ĊĠĠĠĠĠĠĠ Ġsocket Io Server ?. start Async ()?. addListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Opened ( this @ Socket Io Main Channel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Socket Io Main Channel , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Retry Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrowable Ġ= Ġit . cause () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose ( close Request : ĠProtocol . Close Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġforce Close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġforce Close () Ġ{ ĊĠĠĠĠĠĠĠ Ġsocket Io Server ?. stop () ĊĠĠĠĠĠĠĠ Ġlistener . on Closed ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Message Queue ( listener : ĠMessage Queue . Listener ): ĠMessage Queue ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠSocket Io Message Channel ( ĊĠĠĠ Ġprivate Ġval Ġparent : ĠSocket Io Main Channel , ĊĠĠĠ Ġprivate Ġval ĠeventName : ĠString , ĊĠĠĠ Ġprivate Ġval Ġlistener : ĠChannel . Listener Ċ ) Ġ: ĠChannel , ĠMessage Queue Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġserver : ĠSocket IO Server ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmessage Queue Listener : ĠMessage Queue . Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġopen ( open Request : ĠProtocol . Open Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġserver Ġ= Ġparent . socket Io Server ĊĠĠĠĠĠĠĠ Ġif Ġ( server Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Failed ( this , Ġtrue , ĠIllegalStateException (" main ĠeventName Ġis Ġnull ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġserver ?. removeAll Listeners ( eventName ) ĊĠĠĠĠĠĠĠ Ġserver ?. addEventListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠeventName , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAny :: class . java ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġdata , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġmessage Queue Listener ?. on Message Received ( this , Ġthis , ĠMessage . Text ( data )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠByteArray Ġ-> Ġmessage Queue Listener ?. on Message Received ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . Bytes ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlistener . on Opened ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose ( close Request : ĠProtocol . Close Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġforce Close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġforce Close () Ġ{ ĊĠĠĠĠĠĠĠ Ġserver ?. removeAll Listeners ( eventName ) ĊĠĠĠĠĠĠĠ Ġserver Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġlistener . on Closed ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Message Queue ( listener : ĠMessage Queue . Listener ): ĠMessage Queue Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( message Queue Listener Ġ== Ġnull ) ĊĠĠĠĠĠĠĠ Ġmessage Queue Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend ( message : ĠMessage , Ġmessage MetaData : ĠProtocol . Message MetaData ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserver Ġ= Ġserver Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġwhen Ġ( message ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMessage . Text Ġ-> Ġserver . broadcast Operations . send Event ( eventName , Ġmessage . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMessage . Bytes Ġ-> Ġserver . broadcast Operations . send Event ( eventName , Ġmessage . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }