diff --git a/src/main/java/io/vertx/core/http/ServerWebSocket.java b/src/main/java/io/vertx/core/http/ServerWebSocket.java
index fe5cc8827..47105b73d 100644
--- a/src/main/java/io/vertx/core/http/ServerWebSocket.java
+++ b/src/main/java/io/vertx/core/http/ServerWebSocket.java
@@ -98,12 +98,6 @@ public interface ServerWebSocket extends WebSocketBase {
@Nullable
String query();
- /**
- * @return the headers in the WebSocket handshake
- */
- @CacheReturn
- MultiMap headers();
-
/**
* Accept the WebSocket and terminate the WebSocket handshake.
*
diff --git a/src/main/java/io/vertx/core/http/WebSocketBase.java b/src/main/java/io/vertx/core/http/WebSocketBase.java
index a0245e1e9..9239cfc56 100644
--- a/src/main/java/io/vertx/core/http/WebSocketBase.java
+++ b/src/main/java/io/vertx/core/http/WebSocketBase.java
@@ -101,11 +101,11 @@ public interface WebSocketBase extends ReadStream, WriteStream {
String closeReason();
/**
- * Returns the HTTP response headers during the websocket connection handler.
+ * Returns the HTTP headers when the WebSocket is first obtained in the handler.
*
- * After the completion handler callback has completed the response headers will be {@code null}
+ * The headers will be {@code null} on subsequent interactions.
*
- * @return the response headers
+ * @return the headers
*/
MultiMap headers();
diff --git a/src/main/java/io/vertx/core/http/impl/ServerWebSocketImpl.java b/src/main/java/io/vertx/core/http/impl/ServerWebSocketImpl.java
index 5a13ac954..69bebbf00 100644
--- a/src/main/java/io/vertx/core/http/impl/ServerWebSocketImpl.java
+++ b/src/main/java/io/vertx/core/http/impl/ServerWebSocketImpl.java
@@ -51,7 +51,6 @@ public class ServerWebSocketImpl extends WebSocketImplBase
private final String path;
private final String query;
private final WebSocketServerHandshaker handshaker;
- private final MultiMap headers;
private HttpServerRequestImpl request;
private Integer status;
private Promise handshakePromise;
@@ -68,9 +67,10 @@ public class ServerWebSocketImpl extends WebSocketImplBase
this.uri = request.uri();
this.path = request.path();
this.query = request.query();
- this.headers = request.headers();
this.request = request;
this.handshaker = handshaker;
+
+ headers(request.headers());
}
@Override
@@ -88,11 +88,6 @@ public class ServerWebSocketImpl extends WebSocketImplBase
return query;
}
- @Override
- public MultiMap headers() {
- return headers;
- }
-
@Override
public void accept() {
if (tryHandshake(SC_SWITCHING_PROTOCOLS) != Boolean.TRUE) {
diff --git a/src/test/java/io/vertx/core/http/WebSocketTest.java b/src/test/java/io/vertx/core/http/WebSocketTest.java
index 43f8371c4..1840ef3aa 100644
--- a/src/test/java/io/vertx/core/http/WebSocketTest.java
+++ b/src/test/java/io/vertx/core/http/WebSocketTest.java
@@ -1057,34 +1057,26 @@ public class WebSocketTest extends VertxTestBase {
@Test
// Test server accepting no compression
- public void testConnectWithWebsocketComressionDisabled() throws Exception {
- String path = "/some/path";
- Buffer buff = Buffer.buffer("AAA");
+ public void testConnectWithWebSocketCompressionDisabled() throws Exception {
+ String path = "/some/path";
+ Buffer buff = Buffer.buffer("AAA");
- // Server should have basic compression enabled by default,
- // client needs to ask for it
- server = vertx.createHttpServer(new HttpServerOptions()
- .setPort(DEFAULT_HTTP_PORT)
- .setPerFrameWebsocketCompressionSupported(false)
- .setPerMessageWebsocketCompressionSupported(false)
- ).websocketHandler(ws -> {
-
- assertEquals("upgrade", ws.headers().get("Connection"));
- assertNull(ws.headers().get("sec-websocket-extensions"));
-
- ws.writeFrame(WebSocketFrame.binaryFrame(buff, true));
- });
-
-
- server.listen(ar -> {
- assertTrue(ar.succeeded());
-
- HttpClientOptions options = new HttpClientOptions();
-
- client = vertx.createHttpClient(options);
-
- client.webSocket(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, path, onSuccess(ws -> {
+ // Server should have basic compression enabled by default,
+ // client needs to ask for it
+ server = vertx.createHttpServer(new HttpServerOptions()
+ .setPort(DEFAULT_HTTP_PORT)
+ .setPerFrameWebsocketCompressionSupported(false)
+ .setPerMessageWebsocketCompressionSupported(false)
+ ).websocketHandler(ws -> {
+ assertEquals("upgrade", ws.headers().get("Connection"));
+ assertNull(ws.headers().get("sec-websocket-extensions"));
+ ws.writeFrame(WebSocketFrame.binaryFrame(buff, true));
+ });
+ server.listen(onSuccess(s -> {
+ HttpClientOptions options = new HttpClientOptions();
+ client = vertx.createHttpClient(options);
+ client.webSocket(DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, path, onSuccess(ws -> {
final Buffer received = Buffer.buffer();
ws.handler(data -> {
received.appendBuffer(data);
@@ -1095,8 +1087,8 @@ public class WebSocketTest extends VertxTestBase {
}
});
}));
- });
- await();
+ }));
+ await();
}
private void testValidSubProtocol(WebsocketVersion version) throws Exception {