Skip to content

Commit 68e2d2a

Browse files
committed
fix(WS): close before writeAndFlush finished
1 parent 1ca2436 commit 68e2d2a

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/main/kotlin/net/ccbluex/netty/http/websocket/WebSocketHandler.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package net.ccbluex.netty.http.websocket
2121

22+
import io.netty.channel.ChannelFutureListener
2223
import io.netty.channel.ChannelHandlerContext
2324
import io.netty.channel.ChannelInboundHandlerAdapter
2425
import io.netty.handler.codec.http.websocketx.*
@@ -48,8 +49,9 @@ internal class WebSocketHandler(private val server: HttpServer) : ChannelInbound
4849
is PingWebSocketFrame -> ctx.channel().writeAndFlush(PongWebSocketFrame(msg.content().retain()))
4950
is CloseWebSocketFrame -> {
5051
// Accept close frame and send close frame back
51-
ctx.channel().writeAndFlush(msg.retainedDuplicate())
52-
ctx.channel().close().sync()
52+
ctx.channel()
53+
.writeAndFlush(msg.retainedDuplicate())
54+
.addListener(ChannelFutureListener.CLOSE)
5355

5456
server.webSocketController.removeContext(ctx)
5557
logger.debug("WebSocket closed due to ${msg.reasonText()} (${msg.statusCode()})")

0 commit comments

Comments
 (0)