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 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:
    • PERMESSAGE_DEFLATE_EXTENSION

      static final String PERMESSAGE_DEFLATE_EXTENSION
      See Also:
    • CLIENT_MAX_WINDOW

      static final String CLIENT_MAX_WINDOW
      See Also:
    • SERVER_MAX_WINDOW

      static final String SERVER_MAX_WINDOW
      See Also:
    • CLIENT_NO_CONTEXT

      static final String CLIENT_NO_CONTEXT
      See Also:
    • SERVER_NO_CONTEXT

      static final String SERVER_NO_CONTEXT
      See Also:
    • DEFAULT_MEM_LEVEL

      public static final int DEFAULT_MEM_LEVEL
      Default 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:
    • compressionLevel

      private final int compressionLevel
    • allowServerWindowSize

      private final boolean allowServerWindowSize
    • preferredClientWindowSize

      private final int preferredClientWindowSize
    • allowServerNoContext

      private final boolean allowServerNoContext
    • preferredClientNoContext

      private final boolean preferredClientNoContext
    • serverWindowSize

      private final int serverWindowSize
    • memLevel

      private final int memLevel
    • extensionFilterProvider

      private final WebSocketExtensionFilterProvider extensionFilterProvider
    • maxAllocation

      private final int maxAllocation
  • Constructor Details

    • PerMessageDeflateServerExtensionHandshaker

      @Deprecated public PerMessageDeflateServerExtensionHandshaker()
      Deprecated.
      Use
      invalid @link
      {@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)
      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 offers server_max_window_bits=N, the negotiated value is min(N, serverWindowSize). Set lower than MAX_WINDOW_SIZE to 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)
      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)
      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 offers server_max_window_bits=N, the negotiated value is min(N, serverWindowSize). Per RFC 7692 ยง7.1.2.1 the server may include server_max_window_bits with the same or smaller value than the offer; this handshaker also advertises it unilaterally when serverWindowSize is less than MAX_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