Class PerMessageDeflateExtension
java.lang.Object
org.java_websocket.extensions.DefaultExtension
org.java_websocket.extensions.CompressionExtension
org.java_websocket.extensions.permessage_deflate.PerMessageDeflateExtension
- All Implemented Interfaces:
IExtension
PerMessage Deflate Extension (7. The
"permessage-deflate" Extension in
RFC 7692).
-
Constructor Summary
ConstructorsConstructorDescriptionConstructor for the PerMessage Deflate Extension (7. Thepermessage-deflate" Extension) UsesDeflater.DEFAULT_COMPRESSIONas the compression level for theDeflater(int)PerMessageDeflateExtension(int compressionLevel) Constructor for the PerMessage Deflate Extension (7. Thepermessage-deflate" Extension) -
Method Summary
Modifier and TypeMethodDescriptionbooleanacceptProvidedExtensionAsClient(String inputExtension) Check if the received Sec-WebSocket-Extensions header field contains a offer for the specific extension if the endpoint is in the role of a clientbooleanacceptProvidedExtensionAsServer(String inputExtension) Check if the received Sec-WebSocket-Extensions header field contains a offer for the specific extension if the endpoint is in the role of a serverExtensions must only be by one websocket at all.voiddecodeFrame(Framedata inputFrame) Decode a frame with a extension specific algorithm.voidencodeFrame(Framedata inputFrame) Encode a frame with a extension specific algorithm.intGet the compression level used for the compressor.Return the specific Sec-WebSocket-Extensions header offer for this extension if the endpoint is in the role of a client.Return the specific Sec-WebSocket-Extensions header offer for this extension if the endpoint is in the role of a server.intGet the size threshold for doing the compressionbooleanAccess the "client_no_context_takeover" extension parametervoidisFrameValid(Framedata inputFrame) This extension requires the RSV1 bit to be set only for the first frame.booleanAccess the "server_no_context_takeover" extension parametervoidsetClientNoContextTakeover(boolean clientNoContextTakeover) Setter for the "client_no_context_takeover" extension parametervoidsetServerNoContextTakeover(boolean serverNoContextTakeover) Setter for the "server_no_context_takeover" extension parametervoidsetThreshold(int threshold) Set the size when payloads smaller than this will not be compressed.toString()Return a string which should contain the class name as well as additional information about the current configurations for this extension (DEBUG purposes)Methods inherited from class org.java_websocket.extensions.DefaultExtension
equals, hashCode, reset
-
Constructor Details
-
PerMessageDeflateExtension
public PerMessageDeflateExtension()Constructor for the PerMessage Deflate Extension (7. Thepermessage-deflate" Extension) UsesDeflater.DEFAULT_COMPRESSIONas the compression level for theDeflater(int) -
PerMessageDeflateExtension
public PerMessageDeflateExtension(int compressionLevel) Constructor for the PerMessage Deflate Extension (7. Thepermessage-deflate" Extension)- Parameters:
compressionLevel- The compression level passed to theDeflater(int)
-
-
Method Details
-
getCompressionLevel
public int getCompressionLevel()Get the compression level used for the compressor.- Returns:
- the compression level
-
getThreshold
public int getThreshold()Get the size threshold for doing the compression- Returns:
- Size (in bytes) below which messages will not be compressed
- Since:
- 1.5.3
-
setThreshold
public void setThreshold(int threshold) Set the size when payloads smaller than this will not be compressed.- Parameters:
threshold- the size in bytes- Since:
- 1.5.3
-
isServerNoContextTakeover
public boolean isServerNoContextTakeover()Access the "server_no_context_takeover" extension parameter- Returns:
- serverNoContextTakeover is the server no context parameter active
- See Also:
-
setServerNoContextTakeover
public void setServerNoContextTakeover(boolean serverNoContextTakeover) Setter for the "server_no_context_takeover" extension parameter- Parameters:
serverNoContextTakeover- set the server no context parameter- See Also:
-
isClientNoContextTakeover
public boolean isClientNoContextTakeover()Access the "client_no_context_takeover" extension parameter- Returns:
- clientNoContextTakeover is the client no context parameter active
- See Also:
-
setClientNoContextTakeover
public void setClientNoContextTakeover(boolean clientNoContextTakeover) Setter for the "client_no_context_takeover" extension parameter- Parameters:
clientNoContextTakeover- set the client no context parameter- See Also:
-
decodeFrame
Description copied from interface:IExtensionDecode a frame with a extension specific algorithm. The algorithm is subject to be implemented by the specific extension. The resulting frame will be used in the application- Specified by:
decodeFramein interfaceIExtension- Overrides:
decodeFramein classDefaultExtension- Parameters:
inputFrame- the frame, which has do be decoded to be used in the application- Throws:
InvalidDataException- Throw InvalidDataException if the received frame is not correctly implemented by the other endpoint or there are other protocol errors/decoding errors
-
encodeFrame
Description copied from interface:IExtensionEncode a frame with a extension specific algorithm. The algorithm is subject to be implemented by the specific extension. The resulting frame will be send to the other endpoint.- Specified by:
encodeFramein interfaceIExtension- Overrides:
encodeFramein classDefaultExtension- Parameters:
inputFrame- the frame, which has do be encoded to be used on the other endpoint
-
acceptProvidedExtensionAsServer
Description copied from interface:IExtensionCheck if the received Sec-WebSocket-Extensions header field contains a offer for the specific extension if the endpoint is in the role of a server- Specified by:
acceptProvidedExtensionAsServerin interfaceIExtension- Overrides:
acceptProvidedExtensionAsServerin classDefaultExtension- Parameters:
inputExtension- the received Sec-WebSocket-Extensions header field offered by the other endpoint- Returns:
- true, if the offer does fit to this specific extension
-
acceptProvidedExtensionAsClient
Description copied from interface:IExtensionCheck if the received Sec-WebSocket-Extensions header field contains a offer for the specific extension if the endpoint is in the role of a client- Specified by:
acceptProvidedExtensionAsClientin interfaceIExtension- Overrides:
acceptProvidedExtensionAsClientin classDefaultExtension- Parameters:
inputExtension- the received Sec-WebSocket-Extensions header field offered by the other endpoint- Returns:
- true, if the offer does fit to this specific extension
-
getProvidedExtensionAsClient
Description copied from interface:IExtensionReturn the specific Sec-WebSocket-Extensions header offer for this extension if the endpoint is in the role of a client. If the extension returns an empty string (""), the offer will not be included in the handshake.- Specified by:
getProvidedExtensionAsClientin interfaceIExtension- Overrides:
getProvidedExtensionAsClientin classDefaultExtension- Returns:
- the specific Sec-WebSocket-Extensions header for this extension
-
getProvidedExtensionAsServer
Description copied from interface:IExtensionReturn the specific Sec-WebSocket-Extensions header offer for this extension if the endpoint is in the role of a server. If the extension returns an empty string (""), the offer will not be included in the handshake.- Specified by:
getProvidedExtensionAsServerin interfaceIExtension- Overrides:
getProvidedExtensionAsServerin classDefaultExtension- Returns:
- the specific Sec-WebSocket-Extensions header for this extension
-
copyInstance
Description copied from interface:IExtensionExtensions must only be by one websocket at all. To prevent extensions to be used more than once the Websocket implementation should call this method in order to create a new usable version of a given extension instance.
The copy can be safely used in conjunction with a new websocket connection.- Specified by:
copyInstancein interfaceIExtension- Overrides:
copyInstancein classDefaultExtension- Returns:
- a copy of the extension
-
isFrameValid
This extension requires the RSV1 bit to be set only for the first frame. If the frame is type is CONTINUOUS, RSV1 bit must be unset.- Specified by:
isFrameValidin interfaceIExtension- Overrides:
isFrameValidin classCompressionExtension- Parameters:
inputFrame- the received frame- Throws:
InvalidDataException- Throw InvalidDataException if the received frame is not correctly implementing the specification for the specific extension
-
toString
Description copied from interface:IExtensionReturn a string which should contain the class name as well as additional information about the current configurations for this extension (DEBUG purposes)- Specified by:
toStringin interfaceIExtension- Overrides:
toStringin classDefaultExtension- Returns:
- a string containing the class name as well as additional information
-