Home / Function/ WebSocketClientExtension() — netty Function Reference

WebSocketClientExtension() — netty Function Reference

Architecture documentation for the WebSocketClientExtension() function in PerMessageDeflateClientExtensionHandshaker.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  860b68b7_d604_cda7_7dad_2b17c30f4546["WebSocketClientExtension()"]
  3c87c2ad_a87f_62a4_5a39_25cd0fda5855["PerMessageDeflateClientExtensionHandshaker"]
  860b68b7_d604_cda7_7dad_2b17c30f4546 -->|defined in| 3c87c2ad_a87f_62a4_5a39_25cd0fda5855
  edc9a77f_a063_a60e_2d95_8c5dd5e2776b["PermessageDeflateExtension()"]
  860b68b7_d604_cda7_7dad_2b17c30f4546 -->|calls| edc9a77f_a063_a60e_2d95_8c5dd5e2776b
  style 860b68b7_d604_cda7_7dad_2b17c30f4546 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateClientExtensionHandshaker.java lines 215–275

    @Override
    public WebSocketClientExtension handshakeExtension(WebSocketExtensionData extensionData) {
        if (!PERMESSAGE_DEFLATE_EXTENSION.equals(extensionData.name())) {
            return null;
        }

        boolean succeed = true;
        int clientWindowSize = MAX_WINDOW_SIZE;
        int serverWindowSize = MAX_WINDOW_SIZE;
        boolean serverNoContext = false;
        boolean clientNoContext = false;

        Iterator<Entry<String, String>> parametersIterator =
                extensionData.parameters().entrySet().iterator();
        while (succeed && parametersIterator.hasNext()) {
            Entry<String, String> parameter = parametersIterator.next();

            if (CLIENT_MAX_WINDOW.equalsIgnoreCase(parameter.getKey())) {
                // allowed client_window_size_bits
                if (allowClientWindowSize) {
                    clientWindowSize = Integer.parseInt(parameter.getValue());
                    if (clientWindowSize > MAX_WINDOW_SIZE || clientWindowSize < MIN_WINDOW_SIZE) {
                        succeed = false;
                    }
                } else {
                    succeed = false;
                }
            } else if (SERVER_MAX_WINDOW.equalsIgnoreCase(parameter.getKey())) {
                // acknowledged server_window_size_bits
                serverWindowSize = Integer.parseInt(parameter.getValue());
                if (serverWindowSize > MAX_WINDOW_SIZE || serverWindowSize < MIN_WINDOW_SIZE) {
                    succeed = false;
                }
            } else if (CLIENT_NO_CONTEXT.equalsIgnoreCase(parameter.getKey())) {
                // allowed client_no_context_takeover
                if (allowClientNoContext) {
                    clientNoContext = true;
                } else {
                    succeed = false;
                }
            } else if (SERVER_NO_CONTEXT.equalsIgnoreCase(parameter.getKey())) {
                // acknowledged server_no_context_takeover
                serverNoContext = true;
            } else {
                // unknown parameter
                succeed = false;
            }
        }

        if ((requestedServerNoContext && !serverNoContext) ||
                requestedServerWindowSize < serverWindowSize) {
            succeed = false;
        }

        if (succeed) {
            return new PermessageDeflateExtension(serverNoContext, serverWindowSize,
                    clientNoContext, clientWindowSize, extensionFilterProvider, maxAllocation);
        } else {
            return null;
        }
    }

Subdomains

Frequently Asked Questions

What does WebSocketClientExtension() do?
WebSocketClientExtension() is a function in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateClientExtensionHandshaker.java.
Where is WebSocketClientExtension() defined?
WebSocketClientExtension() is defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateClientExtensionHandshaker.java at line 215.
What does WebSocketClientExtension() call?
WebSocketClientExtension() calls 1 function(s): PermessageDeflateExtension.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free