Home / Class/ WebSocketClientHandshaker Class — netty Architecture

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

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