WebSocketServerExtension() — netty Function Reference
Architecture documentation for the WebSocketServerExtension() function in PerMessageDeflateServerExtensionHandshaker.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a01e1140_3aa3_3cc8_c5a1_bc667b439d4d["WebSocketServerExtension()"] ff5c28aa_bf33_88bd_f12c_f405045d33d6["PerMessageDeflateServerExtensionHandshaker"] a01e1140_3aa3_3cc8_c5a1_bc667b439d4d -->|defined in| ff5c28aa_bf33_88bd_f12c_f405045d33d6 d56cae2b_7c35_7afb_395d_d1f067324219["PermessageDeflateExtension()"] a01e1140_3aa3_3cc8_c5a1_bc667b439d4d -->|calls| d56cae2b_7c35_7afb_395d_d1f067324219 style a01e1140_3aa3_3cc8_c5a1_bc667b439d4d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateServerExtensionHandshaker.java lines 205–257
@Override
public WebSocketServerExtension handshakeExtension(WebSocketExtensionData extensionData) {
if (!PERMESSAGE_DEFLATE_EXTENSION.equals(extensionData.name())) {
return null;
}
boolean deflateEnabled = 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 (deflateEnabled && parametersIterator.hasNext()) {
Entry<String, String> parameter = parametersIterator.next();
if (CLIENT_MAX_WINDOW.equalsIgnoreCase(parameter.getKey())) {
// use preferred clientWindowSize because client is compatible with customization
clientWindowSize = preferredClientWindowSize;
} else if (SERVER_MAX_WINDOW.equalsIgnoreCase(parameter.getKey())) {
// use provided windowSize if it is allowed
if (allowServerWindowSize) {
serverWindowSize = Integer.parseInt(parameter.getValue());
if (serverWindowSize > MAX_WINDOW_SIZE || serverWindowSize < MIN_WINDOW_SIZE) {
deflateEnabled = false;
}
} else {
deflateEnabled = false;
}
} else if (CLIENT_NO_CONTEXT.equalsIgnoreCase(parameter.getKey())) {
// use preferred clientNoContext because client is compatible with customization
clientNoContext = preferredClientNoContext;
} else if (SERVER_NO_CONTEXT.equalsIgnoreCase(parameter.getKey())) {
// use server no context if allowed
if (allowServerNoContext) {
serverNoContext = true;
} else {
deflateEnabled = false;
}
} else {
// unknown parameter
deflateEnabled = false;
}
}
if (deflateEnabled) {
return new PermessageDeflateExtension(compressionLevel, serverNoContext,
serverWindowSize, clientNoContext, clientWindowSize, extensionFilterProvider, maxAllocation);
} else {
return null;
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does WebSocketServerExtension() do?
WebSocketServerExtension() is a function in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateServerExtensionHandshaker.java.
Where is WebSocketServerExtension() defined?
WebSocketServerExtension() is defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateServerExtensionHandshaker.java at line 205.
What does WebSocketServerExtension() call?
WebSocketServerExtension() 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