Class WebSocketClientHandshaker13
- java.lang.Object
-
- io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker
-
- io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker13
-
public class WebSocketClientHandshaker13 extends WebSocketClientHandshaker
Performs client side opening and closing handshakes for web socket specification version draft-ietf-hybi-thewebsocketprotocol- 17
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
MAGIC_GUID
-
Fields inherited from class io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker
customHeaders, DEFAULT_FORCE_CLOSE_TIMEOUT_MILLIS, generateOriginHeader
-
-
Constructor Summary
Constructors Constructor Description WebSocketClientHandshaker13(java.net.URI webSocketURL, WebSocketVersion version, java.lang.String subprotocol, boolean allowExtensions, HttpHeaders customHeaders, int maxFramePayloadLength)
Creates a new instance.WebSocketClientHandshaker13(java.net.URI webSocketURL, WebSocketVersion version, java.lang.String subprotocol, boolean allowExtensions, HttpHeaders customHeaders, int maxFramePayloadLength, boolean performMasking, boolean allowMaskMismatch)
Creates a new instance.WebSocketClientHandshaker13(java.net.URI webSocketURL, WebSocketVersion version, java.lang.String subprotocol, boolean allowExtensions, HttpHeaders customHeaders, int maxFramePayloadLength, boolean performMasking, boolean allowMaskMismatch, long forceCloseTimeoutMillis)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isAllowExtensions()
boolean
isAllowMaskMismatch()
boolean
isPerformMasking()
protected FullHttpRequest
newHandshakeRequest()
/**protected WebSocketFrameDecoder
newWebsocketDecoder()
Returns the decoder to use after handshake is complete.protected WebSocketFrameEncoder
newWebSocketEncoder()
Returns the encoder to use after the handshake is complete.WebSocketClientHandshaker13
setForceCloseTimeoutMillis(long forceCloseTimeoutMillis)
Sets timeout to close the connection if it was not closed by the server.protected void
verify(FullHttpResponse response)
Process server response:-
Methods inherited from class io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker
actualSubprotocol, close, close, close, close, expectedSubprotocol, finishHandshake, forceCloseTimeoutMillis, handshake, handshake, isForceCloseComplete, isHandshakeComplete, maxFramePayloadLength, processHandshake, processHandshake, upgradeUrl, uri, version
-
-
-
-
Field Detail
-
MAGIC_GUID
public static final java.lang.String MAGIC_GUID
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
WebSocketClientHandshaker13
public WebSocketClientHandshaker13(java.net.URI webSocketURL, WebSocketVersion version, java.lang.String subprotocol, boolean allowExtensions, HttpHeaders customHeaders, int maxFramePayloadLength)
Creates a new instance.- Parameters:
webSocketURL
- URL for web socket communications. e.g "ws://myhost.com/mypath". Subsequent web socket frames will be sent to this URL.version
- Version of web socket specification to use to connect to the serversubprotocol
- Sub protocol request sent to the server.allowExtensions
- Allow extensions to be used in the reserved bits of the web socket framecustomHeaders
- Map of custom headers to add to the client requestmaxFramePayloadLength
- Maximum length of a frame's payload
-
WebSocketClientHandshaker13
public WebSocketClientHandshaker13(java.net.URI webSocketURL, WebSocketVersion version, java.lang.String subprotocol, boolean allowExtensions, HttpHeaders customHeaders, int maxFramePayloadLength, boolean performMasking, boolean allowMaskMismatch)
Creates a new instance.- Parameters:
webSocketURL
- URL for web socket communications. e.g "ws://myhost.com/mypath". Subsequent web socket frames will be sent to this URL.version
- Version of web socket specification to use to connect to the serversubprotocol
- Sub protocol request sent to the server.allowExtensions
- Allow extensions to be used in the reserved bits of the web socket framecustomHeaders
- Map of custom headers to add to the client requestmaxFramePayloadLength
- Maximum length of a frame's payloadperformMasking
- Whether to mask all written websocket frames. This must be set to true in order to be fully compatible with the websocket specifications. Client applications that communicate with a non-standard server which doesn't require masking might set this to false to achieve a higher performance.allowMaskMismatch
- When set to true, frames which are not masked properly according to the standard will still be accepted.
-
WebSocketClientHandshaker13
public WebSocketClientHandshaker13(java.net.URI webSocketURL, WebSocketVersion version, java.lang.String subprotocol, boolean allowExtensions, HttpHeaders customHeaders, int maxFramePayloadLength, boolean performMasking, boolean allowMaskMismatch, long forceCloseTimeoutMillis)
Creates a new instance.- Parameters:
webSocketURL
- URL for web socket communications. e.g "ws://myhost.com/mypath". Subsequent web socket frames will be sent to this URL.version
- Version of web socket specification to use to connect to the serversubprotocol
- Sub protocol request sent to the server.allowExtensions
- Allow extensions to be used in the reserved bits of the web socket framecustomHeaders
- Map of custom headers to add to the client requestmaxFramePayloadLength
- Maximum length of a frame's payloadperformMasking
- Whether to mask all written websocket frames. This must be set to true in order to be fully compatible with the websocket specifications. Client applications that communicate with a non-standard server which doesn't require masking might set this to false to achieve a higher performance.allowMaskMismatch
- When set to true, frames which are not masked properly according to the standard will still be acceptedforceCloseTimeoutMillis
- Close the connection if it was not closed by the server after timeout specified.
-
-
Method Detail
-
newHandshakeRequest
protected FullHttpRequest newHandshakeRequest()
/**Sends the opening request to the server:
GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Sec-WebSocket-Protocol: chat, superchat Sec-WebSocket-Version: 13
- Specified by:
newHandshakeRequest
in classWebSocketClientHandshaker
-
verify
protected void verify(FullHttpResponse response)
Process server response:
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat
- Specified by:
verify
in classWebSocketClientHandshaker
- Parameters:
response
- HTTP response returned from the server for the request sent by beginOpeningHandshake00().- Throws:
WebSocketHandshakeException
- if handshake response is invalid.
-
newWebsocketDecoder
protected WebSocketFrameDecoder newWebsocketDecoder()
Description copied from class:WebSocketClientHandshaker
Returns the decoder to use after handshake is complete.- Specified by:
newWebsocketDecoder
in classWebSocketClientHandshaker
-
newWebSocketEncoder
protected WebSocketFrameEncoder newWebSocketEncoder()
Description copied from class:WebSocketClientHandshaker
Returns the encoder to use after the handshake is complete.- Specified by:
newWebSocketEncoder
in classWebSocketClientHandshaker
-
setForceCloseTimeoutMillis
public WebSocketClientHandshaker13 setForceCloseTimeoutMillis(long forceCloseTimeoutMillis)
Description copied from class:WebSocketClientHandshaker
Sets timeout to close the connection if it was not closed by the server.- Overrides:
setForceCloseTimeoutMillis
in classWebSocketClientHandshaker
- Parameters:
forceCloseTimeoutMillis
- Close the connection if it was not closed by the server after timeout specified
-
isAllowExtensions
public boolean isAllowExtensions()
-
isPerformMasking
public boolean isPerformMasking()
-
isAllowMaskMismatch
public boolean isAllowMaskMismatch()
-
-