package Ġbr . com . eng app . websocket _ manager Ċ Ċ import ĠEvent Stream Handler Ċ import Ġbr . com . eng app . websocket _ manager . models . MethodName Ċ import Ġio . flutter . plugin . common . MethodCall Ċ import Ġio . flutter . plugin . common . Method Channel ĊĊ Ċ class ĠWebSocket Method Channel Handler ( private Ġval Ġmessage Stream Handler : Event Stream Handler , Ċ ĉ private Ġval Ġconnected Stream Handler : Event Stream Handler , ĊĠĠĠ Ġprivate Ġval Ġclose Stream Handler : Event Stream Handler ) Ġ: ĠMethod Channel . MethodCall Handler Ċ { ĊĊĠĠĠ Ġprivate Ġval Ġwebsocket Manager Ġ= ĠStream WebSocket Manager () ĊĊĠĠĠ Ġoverride Ġfun Ġon MethodCall ( call : ĠMethod Call , Ġresult : ĠMethod Channel . Result ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠLog . i (" Websocket Manager Plugin "," Calling : Ġ${ call . method }") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( call . method ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . PLATFORM _ VERSION Ġ-> Ġresult . success (" Android Ġ${ android . os . Build . VERSION . RELEASE }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . CREATE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl : ĠString ? Ġ= Ġcall . argument < String >(" url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader : Map < String , String >? Ġ= Ġcall . argument < Map < String , String >> (" header ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . i (" Websocket Manager Plugin "," url : Ġ$ url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . i (" Websocket Manager Plugin "," header : Ġ$ header ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . create ( url !! , Ġheader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . message Callback Ġ= Ġfun Ġ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . i (" Websocket Manager Plugin "," sending Ġ$ msg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Stream Handler . send ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . close Callback Ġ= Ġfun Ġ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprint (" closed Ġ$ msg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Stream Handler . send ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċĉĉĉ ĉ websocket Manager . connected Callback Ġ= Ġfun Ġ( msg : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprint (" connected Ġ$ msg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnected Stream Handler . send ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . CONNECT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . connect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . DIS CONNECT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . disconnect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . SEND _ MESSAGE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage : ĠString Ġ= Ġcall . arguments () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . send ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . AUTO _ RETRY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġretry : Boolean ? Ġ= Ġcall . arguments () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( retry Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . enable Retries Ġ= Ġretry ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . ON _ MESSAGE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . message Callback Ġ= Ġfun Ġ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . i (" Websocket Manager Plugin "," sending Ġ$ msg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Stream Handler . send ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċĉĉ ĉ MethodName . ON _ CONNECTED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . connected Callback Ġ= Ġfun Ġ( msg : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . i (" Websocket Manager Plugin "," sending Ġ$ msg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnected Stream Handler . send ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . ON _ DONE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . close Callback Ġ= Ġfun Ġ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprint (" closed Ġ$ msg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Stream Handler . send ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod Name . TEST _ ECHO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebsocket Manager . echo Test () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLog . i (" Websocket Manager Plugin "," echo Ġtest ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success (" echo Ġtest ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresult . not Implemented () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }