Class PerMessageDeflateServerExtensionHandshaker
java.lang.Object
io.netty.handler.codec.http.websocketx.extensions.compression.PerMessageDeflateServerExtensionHandshaker
- All Implemented Interfaces:
WebSocketServerExtensionHandshaker
public final class PerMessageDeflateServerExtensionHandshaker
extends Object
implements WebSocketServerExtensionHandshaker
permessage-deflate
handshake implementation.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault memory level used for deflate compression (zlib MAX_MEM_LEVEL).static final intstatic final intstatic final intstatic final int -
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.PerMessageDeflateServerExtensionHandshaker(int maxAllocation) Constructor with default configuration.PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext) PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, int maxAllocation) Constructor with custom configuration.PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, int serverWindowSize, int memLevel, int maxAllocation) Constructor with custom configuration including server-side compressor memory limits.PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, int serverWindowSize, int memLevel, WebSocketExtensionFilterProvider extensionFilterProvider, int maxAllocation) Constructor with full custom configuration.PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, WebSocketExtensionFilterProvider extensionFilterProvider) PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, WebSocketExtensionFilterProvider extensionFilterProvider, int maxAllocation) -
Method Summary
Modifier and TypeMethodDescriptionhandshakeExtension(WebSocketExtensionData extensionData) Handshake based on client request.
-
Field Details
-
MIN_WINDOW_SIZE
public static final int MIN_WINDOW_SIZE- See Also:
-
MAX_WINDOW_SIZE
public static final int MAX_WINDOW_SIZE- See Also:
-
DEFAULT_MEM_LEVEL
public static final int DEFAULT_MEM_LEVELDefault memory level used for deflate compression (zlib MAX_MEM_LEVEL).- See Also:
-
MIN_MEM_LEVEL
public static final int MIN_MEM_LEVEL- See Also:
-
MAX_MEM_LEVEL
public static final int MAX_MEM_LEVEL- See Also:
-
-
Constructor Details
-
PerMessageDeflateServerExtensionHandshaker
Deprecated.UsePerMessageDeflateServerExtensionHandshaker(int)}.invalid @link
{@link PerMessageDeflateServerExtensionHandshaker#Constructor with default configuration. -
PerMessageDeflateServerExtensionHandshaker
public PerMessageDeflateServerExtensionHandshaker(int maxAllocation) Constructor with default configuration.- Parameters:
maxAllocation- Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
-
PerMessageDeflateServerExtensionHandshaker
@Deprecated public PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext) Deprecated.Constructor with custom configuration.- Parameters:
compressionLevel- Compression level between 0 and 9 (default is 6).allowServerWindowSize- allows WebSocket client to customize the server inflater window size (default is false).preferredClientWindowSize- indicates the preferred client window size to use if client inflater is customizable.allowServerNoContext- allows WebSocket client to activate server_no_context_takeover (default is false).preferredClientNoContext- indicates if server prefers to activate client_no_context_takeover if client is compatible with (default is false).
-
PerMessageDeflateServerExtensionHandshaker
public PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, int maxAllocation) Constructor with custom configuration.- Parameters:
compressionLevel- Compression level between 0 and 9 (default is 6).allowServerWindowSize- allows WebSocket client to customize the server inflater window size (default is false).preferredClientWindowSize- indicates the preferred client window size to use if client inflater is customizable.allowServerNoContext- allows WebSocket client to activate server_no_context_takeover (default is false).preferredClientNoContext- indicates if server prefers to activate client_no_context_takeover if client is compatible with (default is false).maxAllocation- Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
-
PerMessageDeflateServerExtensionHandshaker
public PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, int serverWindowSize, int memLevel, int maxAllocation) Constructor with custom configuration including server-side compressor memory limits.- Parameters:
compressionLevel- Compression level between 0 and 9 (default is 6).allowServerWindowSize- allows WebSocket client to customize the server inflater window size (default is false).preferredClientWindowSize- indicates the preferred client window size to use if client inflater is customizable.allowServerNoContext- allows WebSocket client to activate server_no_context_takeover (default is false).preferredClientNoContext- indicates if server prefers to activate client_no_context_takeover if client is compatible with (default is false).serverWindowSize- upper bound (in bits, 8-15) on the server-side deflate window. If the client offersserver_max_window_bits=N, the negotiated value ismin(N, serverWindowSize). Set lower thanMAX_WINDOW_SIZEto reduce per-connection memory.memLevel- zlib memory level for the server-side deflater (1-9). Lower values reduce per-connection memory at the cost of compression ratio.maxAllocation- Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
-
PerMessageDeflateServerExtensionHandshaker
@Deprecated public PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, WebSocketExtensionFilterProvider extensionFilterProvider) Deprecated.Constructor with custom configuration.- Parameters:
compressionLevel- Compression level between 0 and 9 (default is 6).allowServerWindowSize- allows WebSocket client to customize the server inflater window size (default is false).preferredClientWindowSize- indicates the preferred client window size to use if client inflater is customizable.allowServerNoContext- allows WebSocket client to activate server_no_context_takeover (default is false).preferredClientNoContext- indicates if server prefers to activate client_no_context_takeover if client is compatible with (default is false).extensionFilterProvider- provides server extension filters for per message deflate encoder and decoder.
-
PerMessageDeflateServerExtensionHandshaker
@Deprecated public PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, WebSocketExtensionFilterProvider extensionFilterProvider, int maxAllocation) Deprecated.Constructor with custom configuration.- Parameters:
compressionLevel- Compression level between 0 and 9 (default is 6).allowServerWindowSize- allows WebSocket client to customize the server inflater window size (default is false).preferredClientWindowSize- indicates the preferred client window size to use if client inflater is customizable.allowServerNoContext- allows WebSocket client to activate server_no_context_takeover (default is false).preferredClientNoContext- indicates if server prefers to activate client_no_context_takeover if client is compatible with (default is false).extensionFilterProvider- provides server extension filters for per message deflate encoder and decoder.maxAllocation- Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
-
PerMessageDeflateServerExtensionHandshaker
public PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize, int preferredClientWindowSize, boolean allowServerNoContext, boolean preferredClientNoContext, int serverWindowSize, int memLevel, WebSocketExtensionFilterProvider extensionFilterProvider, int maxAllocation) Constructor with full custom configuration.- Parameters:
compressionLevel- Compression level between 0 and 9 (default is 6).allowServerWindowSize- allows WebSocket client to customize the server inflater window size (default is false).preferredClientWindowSize- indicates the preferred client window size to use if client inflater is customizable.allowServerNoContext- allows WebSocket client to activate server_no_context_takeover (default is false).preferredClientNoContext- indicates if server prefers to activate client_no_context_takeover if client is compatible with (default is false).serverWindowSize- upper bound (in bits, 8-15) on the server-side deflate window. If the client offersserver_max_window_bits=N, the negotiated value ismin(N, serverWindowSize). Per RFC 7692 ยง7.1.2.1 the server may includeserver_max_window_bitswith the same or smaller value than the offer; this handshaker also advertises it unilaterally whenserverWindowSizeis less thanMAX_WINDOW_SIZE.memLevel- zlib memory level for the server-side deflater (1-9). Lower values reduce per-connection memory at the cost of compression ratio.extensionFilterProvider- provides server extension filters for per message deflate encoder and decoder.maxAllocation- Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
-
-
Method Details
-
handshakeExtension
Description copied from interface:WebSocketServerExtensionHandshakerHandshake based on client request. It must failed with null if server cannot handle it.- Specified by:
handshakeExtensionin interfaceWebSocketServerExtensionHandshaker- Parameters:
extensionData- the extension configuration sent by the client.- Returns:
- an initialized extension if handshake phase succeed or null if failed.
-
invalid @link
{@link PerMessageDeflateServerExtensionHandshaker#