package Ġio . r socket . kotlin . samples . chat . client Ċ Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . features . websocket .* Ċ import Ġio . r socket . kotlin . core .* Ċ import Ġio . r socket . kotlin . payload .* Ċ import Ġio . r socket . kotlin . transport . ktor .* Ċ import Ġio . r socket . kotlin . transport . ktor . client .* Ċ Ċ private Ġfun Ġconnector ( name : ĠString ): ĠR Socket Connector Ġ= ĠR Socket Connector Ġ{ ĊĠĠĠ Ġconnection Config Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Payload Ġ{ Ġbuild Payload Ġ{ Ġdata ( name ) Ġ} Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // not Ġsupported Ġon Ġnative Ċ suspend Ġfun Ġconnect To Api Using WS ( name : ĠString , Ġport : ĠInt Ġ= Ġ 9 0 0 0 ): ĠApi Client Ġ{ ĊĠĠĠ Ġval Ġclient Ġ= ĠHttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġinstall ( WebSocket s ) ĊĠĠĠĠĠĠĠ Ġinstall ( R Socket Support ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnector Ġ= Ġconnector ( name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠApi Client ( client . r Socket ( port Ġ= Ġport )) Ċ } Ċ Ċ // not Ġsupported Ġon ĠJS Ċ suspend Ġfun Ġconnect To Api Using TCP ( name : ĠString , Ġport : ĠInt Ġ= Ġ 8 0 0 0 ): ĠApi Client Ġ{ ĊĠĠĠ Ġval Ġtransport Ġ= ĠTcp Client Transport (" 0 . 0 . 0 . 0 ", Ġport ) ĊĠĠĠ Ġreturn ĠApi Client ( connector ( name ). connect ( transport )) Ċ } Ċ