From 0e8462eaf1470ecadea514a45371c348a3936679 Mon Sep 17 00:00:00 2001 From: dalbodeule <11470513+dalbodeule@users.noreply.github.com> Date: Thu, 24 Apr 2025 14:56:00 +0900 Subject: [PATCH] Handle WebSocket session removal on channel closure Add `removeSession` calls in WebSocket exception handling blocks to ensure proper session cleanup when a `ClosedReceiveChannelException` occurs. Prevents potential resource leaks and ensures consistency across WebSocket routes. --- .../space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt | 1 + .../kotlin/space/mori/chzzk_bot/webserver/routes/WSSongRoutes.kt | 1 + .../space/mori/chzzk_bot/webserver/routes/WSTimerRoutes.kt | 1 + 3 files changed, 3 insertions(+) diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt index bc4ea6c..fbab63f 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongListRoutes.kt @@ -151,6 +151,7 @@ fun Routing.wsSongListRoutes() { } } catch (e: ClosedReceiveChannelException) { logger.error("Error in WebSocket: ${e.message}") + removeSession(uid) } } diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongRoutes.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongRoutes.kt index 618ccfa..d43e304 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongRoutes.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSSongRoutes.kt @@ -110,6 +110,7 @@ fun Routing.wsSongRoutes() { } } catch(e: ClosedReceiveChannelException) { logger.error("Error in WebSocket: ${e.message}") + removeSession(uid, this) } } diff --git a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSTimerRoutes.kt b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSTimerRoutes.kt index d0014f7..11d8e04 100644 --- a/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSTimerRoutes.kt +++ b/webserver/src/main/kotlin/space/mori/chzzk_bot/webserver/routes/WSTimerRoutes.kt @@ -87,6 +87,7 @@ fun Routing.wsTimerRoutes() { } } catch(e: ClosedReceiveChannelException) { logger.error("Error in WebSocket: ${e.message}") + removeSession(uid, this) } }