Harry B
04/11/2021, 3:00 PMclass example {
private val ktorClient = HttpClient(Js) {
install(WebSockets)
}
override suspend fun open() {
ktorClient.wss(
method = HttpMethod.Get,
host = "localhost",
port = 80, path = "/example"
) {
val frame = incoming.receive()
when (frame) {
is Frame.Text -> println(frame.readText())
is Frame.Binary -> println(frame.readBytes())
}
}
}
override fun close() {
TODO("Not yet implemented")
}
override fun <T> sendData(data: T) {
// Send to WS here
}
}
rharter
04/11/2021, 3:51 PMHarry B
04/11/2021, 3:59 PMrharter
04/11/2021, 4:08 PMsuspend fun DefaultClientWebSocketSession.outputMessages() {
try {
for (message in incoming) {
message as? Frame.Text ?: continue
println(message.readText())
}
} catch (e: Exception) {
println("Error while receiving: " + e.localizedMessage)
}
}
Harry B
04/11/2021, 4:10 PMprivate val messageChannel: Channel<String> = Channel<String>()
suspend fun DefaultClientWebSocketSession.messageChannel() {
try {
for (message in messageChannel) {
message as? Frame.Text ?: continue
send(message)
println("Sending Message: ${message.readText()}")
}
} catch (e: Exception) {
println("Error while receiving: " + e.message)
}
}
rharter
04/11/2021, 5:38 PM