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
Fields Modifier and Type Field Description static intDEFAULT_MEM_LEVELDefault memory level used for deflate compression (zlib MAX_MEM_LEVEL).static intMAX_MEM_LEVELstatic intMAX_WINDOW_SIZEstatic intMIN_MEM_LEVELstatic intMIN_WINDOW_SIZE
-
Constructor Summary
Constructors Constructor Description PerMessageDeflateServerExtensionHandshaker()Deprecated.Use {@link PerMessageDeflateServerExtensionHandshaker# PerMessageDeflateServerExtensionHandshaker(int)}.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description WebSocketServerExtensionhandshakeExtension(WebSocketExtensionData extensionData)Handshake based on client request.
-
-
-
Field Detail
-
MIN_WINDOW_SIZE
public static final int MIN_WINDOW_SIZE
- See Also:
- Constant Field Values
-
MAX_WINDOW_SIZE
public static final int MAX_WINDOW_SIZE
- See Also:
- Constant Field Values
-
DEFAULT_MEM_LEVEL
public static final int DEFAULT_MEM_LEVEL
Default memory level used for deflate compression (zlib MAX_MEM_LEVEL).- See Also:
- Constant Field Values
-
MIN_MEM_LEVEL
public static final int MIN_MEM_LEVEL
- See Also:
- Constant Field Values
-
MAX_MEM_LEVEL
public static final int MAX_MEM_LEVEL
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PerMessageDeflateServerExtensionHandshaker
@Deprecated public PerMessageDeflateServerExtensionHandshaker()
Deprecated.Use {@link PerMessageDeflateServerExtensionHandshaker# PerMessageDeflateServerExtensionHandshaker(int)}.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 Detail
-
handshakeExtension
public WebSocketServerExtension handshakeExtension(WebSocketExtensionData extensionData)
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.
-
-