[undertow-dev] permessage-deflate extension is not supported, getInstalledExtensions() returns empty set in ServerWebSocketContainer.java

PingShan Li ping.li at firemon.com
Wed Jun 29 16:16:24 EDT 2016


--- Problem:
client's request for compression is ignored.

The client sends the request for compression:

Sec-WebSocket-Extensions: permessage-deflate; client_no_context_takeover; client_max_window_bits\r\n


Webserver receives the client request,


org.springframework.web.socket.server.support.AbstractHandshakeHandler.java:

doHandshake function: try to see if requested extension is supported

String subProtocol = selectProtocol(headers.getSecWebSocketProtocol(), wsHandler);
List<WebSocketExtension> requested = headers.getSecWebSocketExtensions();
List<WebSocketExtension> supported = this.requestUpgradeStrategy.getSupportedExtensions(request);
List<WebSocketExtension> extensions = filterRequestedExtensions(request, requested, supported);

getSupportedExtensions calls into the following function, which always returns empty set for installed extensions.

io.undertow.websockets.jsr.ServerWebSocketContainer.java:

    public Set<Extension> getInstalledExtensions() {
        return Collections.emptySet();
    }

My question is:
how to tell spring framework that the permessage-deflate extension is supported by undertow?

Environement:
Undertow 1.3.22 Final is used by springframework:
+- org.springframework.boot:spring-boot-starter-undertow:jar:1.3.5.RELEASE:compile
[INFO] |  |  +- io.undertow:undertow-core:jar:1.3.22.Final:compile
[INFO] |  |  +- io.undertow:undertow-servlet:jar:1.3.22.Final:compile
[INFO] |  |  +- io.undertow:undertow-websockets-jsr:jar:1.3.22.Final:compile



Thanks




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/undertow-dev/attachments/20160629/a077dcc5/attachment-0001.html 


More information about the undertow-dev mailing list