org.springframework.web.socket

## Class WebSocketExtension

- java.lang.Object
- - org.springframework.web.socket.WebSocketExtension

- Direct Known Subclasses:
    StandardToWebSocketExtensionAdapter

      public class WebSocketExtension
      extends Object

  Represents a WebSocket extension as defined in the RFC 6455. WebSocket extensions add protocol features to the WebSocket protocol. The extensions used within a session are negotiated during the handshake phase as follows:
  - the client may ask for specific extensions in the HTTP handshake request
  - the server responds with the final list of extensions to use in the current session

  WebSocket Extension HTTP headers may include parameters and follow RFC 7230 section 3.2

  Note that the order of extensions in HTTP headers defines their order of execution, e.g. extensions "foo, bar" will be executed as "bar(foo(message))".

  Since:
    4.0
  Author:
    Brian Clozel, Juergen Hoeller
  See Also:
    WebSocket Protocol Extensions, RFC 6455 - Section 9

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `WebSocketExtension(String name)` Create a WebSocketExtension with the given name.
    `WebSocketExtension(String name, Map<String,String> parameters)` Create a WebSocketExtension with the given name and parameters.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object other)`
    `String` | `getName()` Return the name of the extension (never `null` or empty).
    `Map<String,String>` | `getParameters()` Return the parameters of the extension (never `null`).
    `int` | `hashCode()`
    `static List<WebSocketExtension>` | `parseExtensions(String extensions)` Parse the given, comma-separated string into a list of `WebSocketExtension` objects.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### WebSocketExtension

          public WebSocketExtension(String name)

      Create a WebSocketExtension with the given name.
      Parameters:
        `name` - the name of the extension

    - #### WebSocketExtension

          public WebSocketExtension(String name,
                                    @Nullable
                                    Map<String,String> parameters)

      Create a WebSocketExtension with the given name and parameters.
      Parameters:
        `name` - the name of the extension
        `parameters` - the parameters

  - ### Method Detail

    - #### getName

          public String getName()

      Return the name of the extension (never `null` or empty).

    - #### getParameters

          public Map<String,String> getParameters()

      Return the parameters of the extension (never `null`).

    - #### equals

          public boolean equals(@Nullable
                                Object other)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### parseExtensions

          public static List<WebSocketExtension> parseExtensions(String extensions)

      Parse the given, comma-separated string into a list of `WebSocketExtension` objects.

      This method can be used to parse a "Sec-WebSocket-Extension" header.

      Parameters:
        `extensions` - the string to parse
      Returns:
        the list of extensions
      Throws:
        `IllegalArgumentException` - if the string cannot be parsed