package Ġio . ktor . client . features . websocket Ċ Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . features .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . http . c io . websocket .* Ċ import Ġkotlinx . coroutines .* Ċ Ċ /** Ċ Ġ* ĠOpen Ġ[ Default Client WebSocket Session ]. Ċ Ġ*/ Ċ @ Use Experimental ( WebSocket Internal API :: class ) Ċ suspend Ġfun ĠHttpClient . web Socket Session ( ĊĠĠĠ Ġmethod : ĠHttpMethod Ġ= ĠHttpMethod . Get , Ġhost : ĠString Ġ= Ġ" localhost ", Ġport : ĠInt Ġ= ĠDEFAULT _ PORT , Ġpath : ĠString Ġ= Ġ"/", ĊĠĠĠ Ġblock : ĠHttpRequest Builder . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠDefault Client WebSocket Session Ġ= Ġrequest Ġ{ ĊĠĠĠ Ġthis . method Ġ= Ġmethod ĊĠĠĠ Ġurl (" ws ", Ġhost , Ġport , Ġpath ) ĊĠĠĠ Ġblock () Ċ } Ċ Ċ /** Ċ Ġ* ĠOpen Ġ[ block ] Ġwith Ġ[ Default Client WebSocket Session ]. Ċ Ġ*/ Ċ suspend Ġfun ĠHttpClient . web Socket ( ĊĠĠĠ Ġmethod : ĠHttpMethod Ġ= ĠHttpMethod . Get , Ġhost : ĠString Ġ= Ġ" localhost ", Ġport : ĠInt Ġ= ĠDEFAULT _ PORT , Ġpath : ĠString Ġ= Ġ"/", ĊĠĠĠ Ġrequest : ĠHttpRequest Builder . () Ġ-> ĠUnit Ġ= Ġ{}, Ġblock : Ġsuspend ĠDefault Client WebSocket Session . () Ġ-> ĠUnit Ċ ): ĠUnit Ġ{ ĊĠĠĠ Ġval Ġsession Ġ= Ġweb Socket Session ( method , Ġhost , Ġport , Ġpath ) Ġ{ ĊĠĠĠĠĠĠĠ Ġurl . protocol Ġ= ĠURL Protocol . WS ĊĠĠĠĠĠĠĠ Ġurl . port Ġ= Ġport ĊĠĠĠĠĠĠĠ Ġrequest () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġsession . block () ĊĠĠĠ Ġ} Ġcatch Ġ( cause : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsession . close ( cause ) ĊĠĠĠĠĠĠĠ Ġthrow Ġcause ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠ Ġsession . close ( null ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠOpen Ġ[ Default Client WebSocket Session ]. Ċ Ġ*/ Ċ suspend Ġfun ĠHttpClient . ws ( ĊĠĠĠ Ġmethod : ĠHttpMethod Ġ= ĠHttpMethod . Get , Ġhost : ĠString Ġ= Ġ" localhost ", Ġport : ĠInt Ġ= ĠDEFAULT _ PORT , Ġpath : ĠString Ġ= Ġ"/", ĊĠĠĠ Ġrequest : ĠHttpRequest Builder . () Ġ-> ĠUnit Ġ= Ġ{}, Ġblock : Ġsuspend ĠDefault Client WebSocket Session . () Ġ-> ĠUnit Ċ ): ĠUnit Ġ= Ġweb Socket ( method , Ġhost , Ġport , Ġpath , Ġrequest , Ġblock ) Ċ Ċ /** Ċ Ġ* ĠOpen Ġsecure Ġ[ Default Client WebSocket Session ]. Ċ Ġ*/ Ċ suspend Ġfun ĠHttpClient . wss ( ĊĠĠĠ Ġmethod : ĠHttpMethod Ġ= ĠHttpMethod . Get , Ġhost : ĠString Ġ= Ġ" localhost ", Ġport : ĠInt Ġ= ĠDEFAULT _ PORT , Ġpath : ĠString Ġ= Ġ"/", ĊĠĠĠ Ġrequest : ĠHttpRequest Builder . () Ġ-> ĠUnit Ġ= Ġ{}, Ġblock : Ġsuspend ĠDefault Client WebSocket Session . () Ġ-> ĠUnit Ċ ): ĠUnit Ġ= Ġweb Socket ( method , Ġhost , Ġport , Ġpath , Ġrequest Ġ= Ġ{ ĊĠĠĠ Ġurl . protocol Ġ= ĠURL Protocol . W SS ĊĠĠĠ Ġurl . port Ġ= Ġport ĊĊĠĠĠ Ġrequest () Ċ }, Ġblock Ġ= Ġblock ) Ċ