From 8c9d8e40c25176b6a830e8219a0fccf2857f553c Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sat, 2 Jul 2022 08:54:02 +0200 Subject: [PATCH] fix websocket connection --- .../server/web/websocket/WebmapWebsocketServer.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/web/websocket/WebmapWebsocketServer.kt b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/web/websocket/WebmapWebsocketServer.kt index 560ba57..3d99524 100644 --- a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/web/websocket/WebmapWebsocketServer.kt +++ b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/web/websocket/WebmapWebsocketServer.kt @@ -1,12 +1,13 @@ package dev.adamko.kafkatorio.server.web.websocket +import io.ktor.websocket.CloseReason import io.ktor.websocket.DefaultWebSocketSession import io.ktor.websocket.Frame import io.ktor.websocket.send import java.util.concurrent.atomic.AtomicInteger import kotlin.time.Duration.Companion.seconds import kotlin.time.TimeSource -import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.cancel import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.delay @@ -63,7 +64,7 @@ class WebmapWebsocketServer { client.incoming.receiveAsFlow().collect(messagesFromClients) } -// client.launch { + client.launch { while (isActive) { runCatching { client.send("elapsed ${startTime.elapsedNow()}") @@ -71,9 +72,14 @@ class WebmapWebsocketServer { delay(10.seconds) yield() } -// } + } -// awaitCancellation() + log("client ${client.name} is up and running...") + val closedReason: CloseReason? = client.closeReason.await() + + log("client ${client.name} closed ${closedReason ?: "successfully"}") + + coroutineContext.cancel() }