diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java index 8a0eff27a8..db6479d044 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker00.java @@ -19,6 +19,7 @@ import io.netty.buffer.Unpooled; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelFutureNotifier; import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.http.DefaultHttpRequest; import io.netty.handler.codec.http.HttpHeaders.Names; @@ -172,6 +173,7 @@ public class WebSocketClientHandshaker00 extends WebSocketClientHandshaker { request.setContent(Unpooled.copiedBuffer(key3)); + ChannelFuture handshakeFuture = channel.newFuture(); ChannelFuture future = channel.write(request); future.addListener(new ChannelFutureListener() { @@ -183,8 +185,9 @@ public class WebSocketClientHandshaker00 extends WebSocketClientHandshaker { "ws-encoder", new WebSocket00FrameEncoder()); } }); + future.addListener(new ChannelFutureNotifier(handshakeFuture)); - return future; + return handshakeFuture; } /** diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java index 0006171abc..9d43b6c822 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker08.java @@ -18,6 +18,7 @@ package io.netty.handler.codec.http.websocketx; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelFutureNotifier; import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.http.DefaultHttpRequest; import io.netty.handler.codec.http.HttpHeaders.Names; @@ -151,6 +152,7 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker { } } + ChannelFuture handshakeFuture = channel.newFuture(); ChannelFuture future = channel.write(request); future.addListener(new ChannelFutureListener() { @@ -162,8 +164,9 @@ public class WebSocketClientHandshaker08 extends WebSocketClientHandshaker { "ws-encoder", new WebSocket08FrameEncoder(true)); } }); + future.addListener(new ChannelFutureNotifier(handshakeFuture)); - return future; + return handshakeFuture; } /** diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java index b60a829352..35bfd765dd 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker13.java @@ -18,6 +18,7 @@ package io.netty.handler.codec.http.websocketx; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelFutureNotifier; import io.netty.channel.ChannelPipeline; import io.netty.handler.codec.http.DefaultHttpRequest; import io.netty.handler.codec.http.HttpHeaders.Names; @@ -151,6 +152,7 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker { } } + ChannelFuture handshakeFuture = channel.newFuture(); ChannelFuture future = channel.write(request); future.addListener(new ChannelFutureListener() { @@ -162,8 +164,8 @@ public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker { "ws-encoder", new WebSocket13FrameEncoder(true)); } }); - - return future; + future.addListener(new ChannelFutureNotifier(handshakeFuture)); + return handshakeFuture; } /**