package Ġcom . sa ff rame work . server . core . handler . socket And WS Ċ Ċ import Ġcom . sa ff rame work . server . core . log . Log Manager Ċ import Ġio . netty . channel . Channel Ċ import Ġio . netty . channel . Channel Future Listener Ċ import Ġio . netty . handler . codec . http . websocket x . Text WebSocket Frame Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ FileName : Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġcom . sa ff rame work . server . core . handler . socket . Socket Utils Ċ Ġ* Ġ@ author : ĠT ony ĠSh en Ċ Ġ* Ġ@ date : Ġ 2 0 2 0 - 1 1 - 2 0 Ġ 1 1 : 5 4 Ċ Ġ* Ġ@ version : ĠV 1 . 0 Ġ< æııè¿° å½ĵåīį çīĪæľ¬ åĬŁèĥ½ > Ċ Ġ*/ Ċ private Ġval ĠTAG Ġ= Ġ" Socket Utils " Ċ Ċ /** Ċ Ġ* Ġ å¼ĤæŃ¥ åıĳéĢģ TCP æ¶Īæģ¯ Ċ Ġ*/ Ċ fun Ġsend Msg To Client ( data : ĠString , Ġchannel : Channel ?, Ġlistener : ĠChannel Future Listener ) Ġ= Ġchannel ?. run Ġ{ ĊĠĠĠ Ġval Ġflag Ġ= Ġthis . isActive ĊĊĠĠĠ Ġif Ġ( flag ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . write And Flush ( data Ġ+ ĠSystem . getProperty (" line . separator ")). addListener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġflag Ċ } Ġ?: Ġrun Ġ{ ĊĠĠĠ ĠLog Manager . d ( TAG ," channel Ġis Ġnull ") ĊĠĠĠ Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* Ġ åĲĮæŃ¥ åıĳéĢģ TCP æ¶Īæģ¯ Ċ Ġ*/ Ċ fun Ġsend Msg To Client ( data : ĠString , Ġchannel : Channel ?) Ġ= Ġchannel ?. run Ġ{ ĊĊĠĠĠ Ġif Ġ( this . isActive ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . write And Flush ( data Ġ+ ĠSystem . getProperty (" line . separator ")). await Un interrupt ibly (). is Success ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfalse Ċ } Ġ?: Ġrun Ġ{ ĊĠĠĠ ĠLog Manager . d ( TAG ," channel Ġis Ġnull ") ĊĠĠĠ Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* Ġ å¼ĤæŃ¥ åıĳéĢģ ĠWebSocket Ġæ ¶ Ī æģ¯ Ċ Ġ*/ Ċ fun Ġsend Msg To WS ( data : ĠString , Ġchannel : Channel ?, Ġlistener : ĠChannel Future Listener ) Ġ= Ġchannel ?. run Ġ{ ĊĊĠĠĠ Ġval Ġflag Ġ= Ġthis . isActive ĊĊĠĠĠ Ġif Ġ( flag ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . write And Flush ( Text WebSocket Frame ( data )). addListener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġflag Ċ } Ġ?: Ġrun Ġ{ ĊĠĠĠ ĠLog Manager . d ( TAG ," channel Ġis Ġnull ") ĊĠĠĠ Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* Ġ åĲĮæŃ¥ åıĳéĢģ ĠWebSocket Ġæ ¶ Ī æģ¯ Ċ Ġ*/ Ċ fun Ġsend Msg To WS ( data : ĠString , channel : Channel ?) Ġ= Ġchannel ?. run Ġ{ ĊĊĠĠĠ Ġif Ġ( this . isActive ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . write And Flush ( Text WebSocket Frame ( data )). await Un interrupt ibly (). is Success ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfalse Ċ } Ġ?: Ġrun Ġ{ ĊĠĠĠ ĠLog Manager . d ( TAG ," channel Ġis Ġnull ") ĊĠĠĠ Ġfalse Ċ }