handlePotentialUpgrade() — netty Function Reference
Architecture documentation for the handlePotentialUpgrade() function in WebSocketServerExtensionHandler.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 9086a7ff_2993_4d2a_e3f4_c633a73db191["handlePotentialUpgrade()"] 6784d673_612f_ff75_025d_f5a9bf196079["WebSocketServerExtensionHandler"] 9086a7ff_2993_4d2a_e3f4_c633a73db191 -->|defined in| 6784d673_612f_ff75_025d_f5a9bf196079 96bb3d12_072a_e0a4_aff1_8ed0a900a632["onHttpResponseWrite()"] 96bb3d12_072a_e0a4_aff1_8ed0a900a632 -->|calls| 9086a7ff_2993_4d2a_e3f4_c633a73db191 style 9086a7ff_2993_4d2a_e3f4_c633a73db191 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/WebSocketServerExtensionHandler.java lines 209–246
private void handlePotentialUpgrade(final ChannelHandlerContext ctx,
ChannelPromise promise, HttpResponse httpResponse,
final List<WebSocketServerExtension> validExtensionsList) {
HttpHeaders headers = httpResponse.headers();
if (WebSocketExtensionUtil.isWebsocketUpgrade(headers)) {
if (validExtensionsList != null && !validExtensionsList.isEmpty()) {
String headerValue = headers.getAsString(HttpHeaderNames.SEC_WEBSOCKET_EXTENSIONS);
List<WebSocketExtensionData> extraExtensions =
new ArrayList<>(extensionHandshakers.size());
for (WebSocketServerExtension extension : validExtensionsList) {
extraExtensions.add(extension.newReponseData());
}
String newHeaderValue = WebSocketExtensionUtil
.computeMergeExtensionsHeaderValue(headerValue, extraExtensions);
promise.addListener(future -> {
if (future.isSuccess()) {
for (WebSocketServerExtension extension : validExtensionsList) {
WebSocketExtensionDecoder decoder = extension.newExtensionDecoder();
WebSocketExtensionEncoder encoder = extension.newExtensionEncoder();
String name = ctx.name();
ctx.pipeline()
.addAfter(name, decoder.getClass().getName(), decoder)
.addAfter(name, encoder.getClass().getName(), encoder);
}
}
});
headers.set(HttpHeaderNames.SEC_WEBSOCKET_EXTENSIONS, newHeaderValue);
}
promise.addListener(future -> {
if (future.isSuccess()) {
ctx.pipeline().remove(WebSocketServerExtensionHandler.this);
}
});
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does handlePotentialUpgrade() do?
handlePotentialUpgrade() is a function in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/WebSocketServerExtensionHandler.java.
Where is handlePotentialUpgrade() defined?
handlePotentialUpgrade() is defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/WebSocketServerExtensionHandler.java at line 209.
What calls handlePotentialUpgrade()?
handlePotentialUpgrade() is called by 1 function(s): onHttpResponseWrite.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free