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 String
private static final String
private static final byte[]
private static final int
private static final int
private static final int
private boolean
private int
private static final int
private static final int
private ByteArray
private int
private boolean
private int
private static final String
private static final String
Fields 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 void
appendEmptyBlock
(ByteArray data, int[] bitIndex) private boolean
canCompress
(byte[] plain) protected byte[]
compress
(byte[] plain) Compress the plain message.private int
computeWindowSize
(String key, String value) protected byte[]
decompress
(byte[] compressed) Decompress the compressed message.private int
extractMaxWindowBits
(String key, String value) int
int
boolean
boolean
private int
parseMaxWindowBits
(String value) private static boolean
private static void
private static void
skipDynamicBlock
(ByteArray input, int[] bitIndex) private static void
skipFixedBlock
(ByteArray input, int[] bitIndex) private static int
skipPlainBlock
(ByteArray input, int[] bitIndex) (package private) void
validate()
Validate this instance.private void
validateParameter
(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:WebSocketExtension
Validate this instance. This method is expected to be overridden.- Overrides:
validate
in 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:PerMessageCompressionExtension
Decompress the compressed message.- Specified by:
decompress
in classPerMessageCompressionExtension
- Throws:
WebSocketException
-
compress
Description copied from class:PerMessageCompressionExtension
Compress the plain message.- Specified by:
compress
in 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
-