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;
}
}
Domain
Subdomains
Source
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