WebSocketClientHandshaker Class — netty Architecture
Architecture documentation for the WebSocketClientHandshaker class in WebSocketClientHandshaker.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD c066c80e_6ce3_75b8_2f7f_b6e3991df91b["WebSocketClientHandshaker"] 58534b7d_b007_8620_4159_ce775839e760["WebSocketClientHandshaker.java"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|defined in| 58534b7d_b007_8620_4159_ce775839e760 67ecf45b_4798_e986_b561_40354cbd627a["WebSocketClientHandshaker()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 67ecf45b_4798_e986_b561_40354cbd627a 522f0205_7a90_7efb_6b0a_bf15f2ee9aee["URI()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 522f0205_7a90_7efb_6b0a_bf15f2ee9aee 718ff976_017c_abab_30b9_7b6618b9a3e8["WebSocketVersion()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 718ff976_017c_abab_30b9_7b6618b9a3e8 5beeeaf9_30a4_6d9e_507c_57a9da4e8305["maxFramePayloadLength()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 5beeeaf9_30a4_6d9e_507c_57a9da4e8305 fa562b57_8940_a2d9_f6fd_675e985ede1f["isHandshakeComplete()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| fa562b57_8940_a2d9_f6fd_675e985ede1f 6965c28d_3a63_f0f2_f423_fae621978e5a["setHandshakeComplete()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 6965c28d_3a63_f0f2_f423_fae621978e5a ea8d7f85_90ca_b432_9553_6ee9c04d6ce9["String()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| ea8d7f85_90ca_b432_9553_6ee9c04d6ce9 96862294_8f4d_b0d6_9cc2_3c46ee273d11["setActualSubprotocol()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 96862294_8f4d_b0d6_9cc2_3c46ee273d11 ecaedb37_ae83_f6fd_a99f_47e9d93b55ce["forceCloseTimeoutMillis()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| ecaedb37_ae83_f6fd_a99f_47e9d93b55ce 4a0560ce_3e9d_edf6_b4e2_f6af105d6a38["isForceCloseComplete()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 4a0560ce_3e9d_edf6_b4e2_f6af105d6a38 8d6f0453_9599_2392_6c36_119ec8ca7972["ChannelFuture()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 8d6f0453_9599_2392_6c36_119ec8ca7972 0af11eaf_e0de_2ec1_ad82_cf9c22905c32["FullHttpRequest()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 0af11eaf_e0de_2ec1_ad82_cf9c22905c32 9794b10c_d406_d7de_aceb_ab5d06acccfc["finishHandshake()"] c066c80e_6ce3_75b8_2f7f_b6e3991df91b -->|method| 9794b10c_d406_d7de_aceb_ab5d06acccfc
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker.java lines 56–770
public abstract class WebSocketClientHandshaker {
private static final String HTTP_SCHEME_PREFIX = HttpScheme.HTTP + "://";
private static final String HTTPS_SCHEME_PREFIX = HttpScheme.HTTPS + "://";
protected static final int DEFAULT_FORCE_CLOSE_TIMEOUT_MILLIS = 10000;
private final URI uri;
private final WebSocketVersion version;
private volatile boolean handshakeComplete;
private volatile long forceCloseTimeoutMillis = DEFAULT_FORCE_CLOSE_TIMEOUT_MILLIS;
private volatile int forceCloseInit;
private static final AtomicIntegerFieldUpdater<WebSocketClientHandshaker> FORCE_CLOSE_INIT_UPDATER =
AtomicIntegerFieldUpdater.newUpdater(WebSocketClientHandshaker.class, "forceCloseInit");
private volatile boolean forceCloseComplete;
private final String expectedSubprotocol;
private volatile String actualSubprotocol;
protected final HttpHeaders customHeaders;
private final int maxFramePayloadLength;
private final boolean absoluteUpgradeUrl;
protected final boolean generateOriginHeader;
/**
* Base constructor
*
* @param uri
* URL for web socket communications. e.g "ws://myhost.com/mypath". Subsequent web socket frames will be
* sent to this URL.
* @param version
* Version of web socket specification to use to connect to the server
* @param subprotocol
* Sub protocol request sent to the server.
* @param customHeaders
* Map of custom headers to add to the client request
* @param maxFramePayloadLength
* Maximum length of a frame's payload
*/
protected WebSocketClientHandshaker(URI uri, WebSocketVersion version, String subprotocol,
HttpHeaders customHeaders, int maxFramePayloadLength) {
this(uri, version, subprotocol, customHeaders, maxFramePayloadLength, DEFAULT_FORCE_CLOSE_TIMEOUT_MILLIS);
}
/**
* Base constructor
*
* @param uri
* URL for web socket communications. e.g "ws://myhost.com/mypath". Subsequent web socket frames will be
* sent to this URL.
* @param version
* Version of web socket specification to use to connect to the server
* @param subprotocol
* Sub protocol request sent to the server.
* @param customHeaders
* Map of custom headers to add to the client request
* @param maxFramePayloadLength
* Maximum length of a frame's payload
* @param forceCloseTimeoutMillis
* Close the connection if it was not closed by the server after timeout specified
*/
protected WebSocketClientHandshaker(URI uri, WebSocketVersion version, String subprotocol,
HttpHeaders customHeaders, int maxFramePayloadLength,
long forceCloseTimeoutMillis) {
this(uri, version, subprotocol, customHeaders, maxFramePayloadLength, forceCloseTimeoutMillis, false);
}
/**
* Base constructor
*
* @param uri
* URL for web socket communications. e.g "ws://myhost.com/mypath". Subsequent web socket frames will be
Defined In
Source
Frequently Asked Questions
What is the WebSocketClientHandshaker class?
WebSocketClientHandshaker is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker.java.
Where is WebSocketClientHandshaker defined?
WebSocketClientHandshaker is defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocketClientHandshaker.java at line 56.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free