From 4607c59c6516645d24b7a7f6f14ff71f917b92cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E8=91=89=20Scarlet?= <93977077+MukjepScarlet@users.noreply.github.com> Date: Tue, 20 May 2025 12:06:01 +0800 Subject: [PATCH] refactor: TextWebSocketFrame creations --- .../ccbluex/netty/http/websocket/WebSocketController.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/net/ccbluex/netty/http/websocket/WebSocketController.kt b/src/main/kotlin/net/ccbluex/netty/http/websocket/WebSocketController.kt index c822c58..5473057 100644 --- a/src/main/kotlin/net/ccbluex/netty/http/websocket/WebSocketController.kt +++ b/src/main/kotlin/net/ccbluex/netty/http/websocket/WebSocketController.kt @@ -37,17 +37,19 @@ class WebSocketController { /** * Broadcasts a message to all connected clients. * - * @param message The message to broadcast. + * @param text The message to broadcast. * @param failure The action to take if a failure occurs. */ fun broadcast(text: String, failure: (ChannelHandlerContext, Throwable) -> Unit = { _, _ -> }) { + val frame = TextWebSocketFrame(text) activeContexts.forEach { handlerContext -> try { - handlerContext.channel().writeAndFlush(TextWebSocketFrame(text)) + handlerContext.channel().writeAndFlush(frame.retain()) } catch (e: Throwable) { failure(handlerContext, e) } } + frame.release() } /** @@ -79,4 +81,4 @@ class WebSocketController { activeContexts.remove(context) } -} \ No newline at end of file +}