Package com.neovisionaries.ws.client
Class PerMessageDeflateExtension
java.lang.Object
com.neovisionaries.ws.client.WebSocketExtension
com.neovisionaries.ws.client.PerMessageCompressionExtension
com.neovisionaries.ws.client.PerMessageDeflateExtension
Per-Message Deflate Extension (7. The "permessage-deflate" Extension in
RFC 7692).
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate static final Stringprivate static final byte[]private static final intprivate static final intprivate static final intprivate booleanprivate intprivate static final intprivate static final intprivate ByteArrayprivate intprivate booleanprivate intprivate static final Stringprivate static final StringFields inherited from class com.neovisionaries.ws.client.WebSocketExtension
PERMESSAGE_DEFLATE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static byte[]adjustCompressedData(byte[] compressed) private static voidappendEmptyBlock(ByteArray data, int[] bitIndex) private booleancanCompress(byte[] plain) protected byte[]compress(byte[] plain) Compress the plain message.private intcomputeWindowSize(String key, String value) protected byte[]decompress(byte[] compressed) Decompress the compressed message.private intextractMaxWindowBits(String key, String value) intintbooleanbooleanprivate intparseMaxWindowBits(String value) private static booleanprivate static voidprivate static voidskipDynamicBlock(ByteArray input, int[] bitIndex) private static voidskipFixedBlock(ByteArray input, int[] bitIndex) private static intskipPlainBlock(ByteArray input, int[] bitIndex) (package private) voidvalidate()Validate this instance.private voidvalidateParameter(String key, String value) Methods inherited from class com.neovisionaries.ws.client.WebSocketExtension
containsParameter, getName, getParameter, getParameters, parse, setParameter, toString
-
Field Details
-
SERVER_NO_CONTEXT_TAKEOVER
- See Also:
-
CLIENT_NO_CONTEXT_TAKEOVER
- See Also:
-
SERVER_MAX_WINDOW_BITS
- See Also:
-
CLIENT_MAX_WINDOW_BITS
- See Also:
-
COMPRESSION_TERMINATOR
private static final byte[] COMPRESSION_TERMINATOR -
MIN_BITS
private static final int MIN_BITS- See Also:
-
MAX_BITS
private static final int MAX_BITS- See Also:
-
MIN_WINDOW_SIZE
private static final int MIN_WINDOW_SIZE- See Also:
-
MAX_WINDOW_SIZE
private static final int MAX_WINDOW_SIZE- See Also:
-
INCOMING_SLIDING_WINDOW_MARGIN
private static final int INCOMING_SLIDING_WINDOW_MARGIN- See Also:
-
mServerNoContextTakeover
private boolean mServerNoContextTakeover -
mClientNoContextTakeover
private boolean mClientNoContextTakeover -
mServerWindowSize
private int mServerWindowSize -
mClientWindowSize
private int mClientWindowSize -
mIncomingSlidingWindowBufferSize
private int mIncomingSlidingWindowBufferSize -
mIncomingSlidingWindow
-
-
Constructor Details
-
PerMessageDeflateExtension
public PerMessageDeflateExtension() -
PerMessageDeflateExtension
-
-
Method Details
-
validate
Description copied from class:WebSocketExtensionValidate this instance. This method is expected to be overridden.- Overrides:
validatein classWebSocketExtension- Throws:
WebSocketException
-
isServerNoContextTakeover
public boolean isServerNoContextTakeover() -
isClientNoContextTakeover
public boolean isClientNoContextTakeover() -
getServerWindowSize
public int getServerWindowSize() -
getClientWindowSize
public int getClientWindowSize() -
validateParameter
- Throws:
WebSocketException
-
computeWindowSize
- Throws:
WebSocketException
-
extractMaxWindowBits
- Throws:
WebSocketException
-
parseMaxWindowBits
-
decompress
Description copied from class:PerMessageCompressionExtensionDecompress the compressed message.- Specified by:
decompressin classPerMessageCompressionExtension- Throws:
WebSocketException
-
compress
Description copied from class:PerMessageCompressionExtensionCompress the plain message.- Specified by:
compressin classPerMessageCompressionExtension- Throws:
WebSocketException
-
canCompress
private boolean canCompress(byte[] plain) -
adjustCompressedData
- Throws:
FormatException
-
appendEmptyBlock
-
skipBlock
private static boolean skipBlock(ByteArray input, int[] bitIndex, boolean[] hasEmptyBlock) throws FormatException - Throws:
FormatException
-
skipPlainBlock
-
skipFixedBlock
- Throws:
FormatException
-
skipDynamicBlock
- Throws:
FormatException
-
skipData
private static void skipData(ByteArray input, int[] bitIndex, Huffman literalLengthHuffman, Huffman distanceHuffman) throws FormatException - Throws:
FormatException
-