package Ġcom . websocket _ client Ċ Ċ import Ġandroid . os . Message Ċ import Ġandroid . os . Build Ċ Ċ import Ġorg . java _ websocket . WebSocket Ċ import Ġorg . java _ websocket . client . WebSocket Client Ċ import Ġorg . java _ websocket . draft s . Draft Ċ import Ġorg . java _ websocket . draft s . Draft _ 6 4 5 5 Ċ import Ġorg . java _ websocket . fr aming . Frame data Ċ import Ġorg . java _ websocket . handshake . Server Handshake Ċ Ċ import Ġjava . net . URI Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjavax . net . ssl . SSL Parameters Ċ Ċ class ĠWebSocket Client Ġ@ Jvm Over loads Ċ constructor ( server Uri : ĠURI , Ġprivate Ġvar Ġstream Handler : ĠStream Handler , Ġprotocol Draft : ĠDraft Ġ= ĠDraft _ 6 4 5 5 (), Ġhttp Headers : ĠMap < String , ĠString >? Ġ= Ġnull , Ġconnect Timeout : ĠInt Ġ= Ġ 0 ) Ġ: ĠWebSocket Client ( server Uri , Ġprotocol Draft , Ġhttp Headers , Ġconnect Timeout ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Open ( handshake Data : ĠServer Handshake ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Result Ġ= ĠHashMap < String , ĠAny >() ĊĊĠĠĠĠĠĠĠ Ġevent Result [" event "] Ġ= ĠEvent . ON _ OPEN . ordinal ĊĠĠĠĠĠĠĠ Ġevent Result [" http Status "] Ġ= Ġhandshake Data ?. http Status . toString () ĊĠĠĠĠĠĠĠ Ġevent Result [" http StatusMessage "] Ġ= Ġhandshake Data ?. http StatusMessage . toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠ Ġevent Result . also Ġ{ Ġmessage . obj Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġstream Handler . handler ?. sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClose ( code : ĠInt , Ġreason : ĠString ?, Ġremote : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Result Ġ= ĠHashMap < String , ĠAny >() ĊĊĠĠĠĠĠĠĠ Ġevent Result [" event "] Ġ= ĠEvent . ON _ CLOSE . ordinal ĊĠĠĠĠĠĠĠ Ġevent Result [" code "] Ġ= Ġcode ĊĠĠĠĠĠĠĠ Ġevent Result [" reason "] Ġ= Ġreason . toString () ĊĠĠĠĠĠĠĠ Ġevent Result [" remote "] Ġ= Ġremote ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠ Ġevent Result . also Ġ{ Ġmessage . obj Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġstream Handler . handler ?. sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Message ( message : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Result Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġevent Result [" event "] Ġ= ĠEvent . ON _ MESSAGE . ordinal ĊĠĠĠĠĠĠĠ Ġevent Result [" message "] Ġ= Ġmessage . toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠ Ġevent Result . also Ġ{ Ġmessage . obj Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġstream Handler . handler ?. sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Message ( bytes : ĠByteBuffer ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Result Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġevent Result [" event "] Ġ= ĠEvent . ON _ MESSAGE . ordinal ĊĠĠĠĠĠĠĠ Ġevent Result [" message "] Ġ= Ġbytes ?. array () !! ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠ Ġevent Result . also Ġ{ Ġmessage . obj Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġstream Handler . handler ?. sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( ex : ĠException ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Result Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġevent Result [" event "] Ġ= ĠEvent . ON _ ERROR . ordinal ĊĠĠĠĠĠĠĠ Ġevent Result [" error "] Ġ= Ġex ?. message . toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠ Ġevent Result . also Ġ{ Ġmessage . obj Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġstream Handler . handler ?. sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Websocket Ping ( conn : ĠWebSocket ?, Ġframe Data : ĠFrame data ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Result Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġevent Result [" event "] Ġ= ĠEvent . ON _ PING . ordinal ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠ Ġevent Result . also Ġ{ Ġmessage . obj Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġstream Handler . handler ?. sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Websocket P ong ( conn : ĠWebSocket ?, Ġframe Data : ĠFrame data ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevent Result Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġevent Result [" event "] Ġ= ĠEvent . ON _ P ONG . ordinal ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠ Ġevent Result . also Ġ{ Ġmessage . obj Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġstream Handler . handler ?. sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Set SSL Parameters ( ssl Parameters : ĠSSL Parameters ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġssl Parameters . set Endpoint Identification Algorithm (" HTTPS ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcancel Handler () Ġ{ ĊĠĠĠĠĠĠĠ Ġstream Handler . on Cancel ( null ) ĊĠĠĠ Ġ} Ċ }