org.apache.tomcat.websocket

## Class WsWebSocketContainer

- java.lang.Object
- - org.apache.tomcat.websocket.WsWebSocketContainer

- All Implemented Interfaces:
    WebSocketContainer, BackgroundProcess
  Direct Known Subclasses:
    WsServerContainer

      public class WsWebSocketContainer
      extends Object
      implements WebSocketContainer, BackgroundProcess

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `WsWebSocketContainer()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `backgroundProcess()`
    `Session` | `connectToServer(Class<?> annotatedEndpointClass, URI path)`
    `Session` | `connectToServer(Class<? extends Endpoint> clazz, ClientEndpointConfig clientEndpointConfiguration, URI path)` Creates a new connection to the WebSocket.
    `Session` | `connectToServer(Endpoint endpoint, ClientEndpointConfig clientEndpointConfiguration, URI path)` Creates a new connection to the WebSocket.
    `Session` | `connectToServer(Object pojo, URI path)`
    `void` | `destroy()` Cleans up the resources still in use by WebSocket sessions created from this container.
    `long` | `getDefaultAsyncSendTimeout()` Get the default timeout for sending a message asynchronously.
    `int` | `getDefaultMaxBinaryMessageBufferSize()` Get the default maximum buffer size for binary messages.
    `long` | `getDefaultMaxSessionIdleTimeout()` Get the current default session idle timeout.
    `int` | `getDefaultMaxTextMessageBufferSize()` Get the default maximum buffer size for text messages.
    `Set<Extension>` | `getInstalledExtensions()` Get the installed extensions.
    `int` | `getProcessPeriod()` The default value is 10 which means session expirations are processed every 10 seconds.
    `protected void` | `registerSession(Object key, WsSession wsSession)`
    `void` | `setAsyncSendTimeout(long timeout)` Set the default timeout for sending a message asynchronously.
    `void` | `setDefaultMaxBinaryMessageBufferSize(int max)` Set the default maximum buffer size for binary messages.
    `void` | `setDefaultMaxSessionIdleTimeout(long timeout)` Set the default session idle timeout.
    `void` | `setDefaultMaxTextMessageBufferSize(int max)` Set the default maximum buffer size for text messages.
    `protected void` | `setInstanceManager(InstanceManager instanceManager)`
    `void` | `setProcessPeriod(int period)`
    `protected void` | `unregisterSession(Object key, WsSession wsSession)`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### WsWebSocketContainer

          public WsWebSocketContainer()

  - ### Method Detail

    - #### setInstanceManager

          protected void setInstanceManager(InstanceManager instanceManager)

    - #### connectToServer

          public Session connectToServer(Object pojo,
                                URI path)
                                  throws DeploymentException

      Specified by:
        `connectToServer` in interface `WebSocketContainer`
      Throws:
        `DeploymentException`

    - #### connectToServer

          public Session connectToServer(Class<?> annotatedEndpointClass,
                                URI path)
                                  throws DeploymentException

      Specified by:
        `connectToServer` in interface `WebSocketContainer`
      Throws:
        `DeploymentException`

    - #### connectToServer

          public Session connectToServer(Class<? extends Endpoint> clazz,
                                ClientEndpointConfig clientEndpointConfiguration,
                                URI path)
                                  throws DeploymentException

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Creates a new connection to the WebSocket.
      Specified by:
        `connectToServer` in interface `WebSocketContainer`
      Parameters:
        `clazz` - An instance of this class will be created to handle responses from the server
        `clientEndpointConfiguration` - Used to configure the new connection
        `path` - The full URL of the WebSocket endpoint to connect to
      Returns:
        The WebSocket session for the connection
      Throws:
        `DeploymentException` - If the connection cannot be established

    - #### connectToServer

          public Session connectToServer(Endpoint endpoint,
                                ClientEndpointConfig clientEndpointConfiguration,
                                URI path)
                                  throws DeploymentException

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Creates a new connection to the WebSocket.
      Specified by:
        `connectToServer` in interface `WebSocketContainer`
      Parameters:
        `endpoint` - The endpoint instance that will handle responses from the server
        `clientEndpointConfiguration` - Used to configure the new connection
        `path` - The full URL of the WebSocket endpoint to connect to
      Returns:
        The WebSocket session for the connection
      Throws:
        `DeploymentException` - If the connection cannot be established

    - #### registerSession

          protected void registerSession(Object key,
                             WsSession wsSession)

    - #### unregisterSession

          protected void unregisterSession(Object key,
                               WsSession wsSession)

    - #### getDefaultMaxSessionIdleTimeout

          public long getDefaultMaxSessionIdleTimeout()

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Get the current default session idle timeout.
      Specified by:
        `getDefaultMaxSessionIdleTimeout` in interface `WebSocketContainer`
      Returns:
        The current default session idle timeout in milliseconds. Zero or negative values indicate an infinite timeout.

    - #### setDefaultMaxSessionIdleTimeout

          public void setDefaultMaxSessionIdleTimeout(long timeout)

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Set the default session idle timeout.
      Specified by:
        `setDefaultMaxSessionIdleTimeout` in interface `WebSocketContainer`
      Parameters:
        `timeout` - The new default session idle timeout in milliseconds. Zero or negative values indicate an infinite timeout.

    - #### getDefaultMaxBinaryMessageBufferSize

          public int getDefaultMaxBinaryMessageBufferSize()

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Get the default maximum buffer size for binary messages.
      Specified by:
        `getDefaultMaxBinaryMessageBufferSize` in interface `WebSocketContainer`
      Returns:
        The current default maximum buffer size in bytes

    - #### setDefaultMaxBinaryMessageBufferSize

          public void setDefaultMaxBinaryMessageBufferSize(int max)

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Set the default maximum buffer size for binary messages.
      Specified by:
        `setDefaultMaxBinaryMessageBufferSize` in interface `WebSocketContainer`
      Parameters:
        `max` - The new default maximum buffer size in bytes

    - #### getDefaultMaxTextMessageBufferSize

          public int getDefaultMaxTextMessageBufferSize()

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Get the default maximum buffer size for text messages.
      Specified by:
        `getDefaultMaxTextMessageBufferSize` in interface `WebSocketContainer`
      Returns:
        The current default maximum buffer size in characters

    - #### setDefaultMaxTextMessageBufferSize

          public void setDefaultMaxTextMessageBufferSize(int max)

      Description copied from interface: `javax.websocket.WebSocketContainer`
      Set the default maximum buffer size for text messages.
      Specified by:
        `setDefaultMaxTextMessageBufferSize` in interface `WebSocketContainer`
      Parameters:
        `max` - The new default maximum buffer size in characters

    - #### getInstalledExtensions

          public Set<Extension> getInstalledExtensions()

      Get the installed extensions. Currently, this implementation does not support any extensions.
      Specified by:
        `getInstalledExtensions` in interface `WebSocketContainer`
      Returns:
        The set of extensions that are supported by this WebSocket implementation.

    - #### getDefaultAsyncSendTimeout

          public long getDefaultAsyncSendTimeout()

      Get the default timeout for sending a message asynchronously. The default value for this implementation is -1.
      Specified by:
        `getDefaultAsyncSendTimeout` in interface `WebSocketContainer`
      Returns:
        The current default timeout in milliseconds. A non-positive value means an infinite timeout.

    - #### setAsyncSendTimeout

          public void setAsyncSendTimeout(long timeout)

      Set the default timeout for sending a message asynchronously. The default value for this implementation is -1.
      Specified by:
        `setAsyncSendTimeout` in interface `WebSocketContainer`
      Parameters:
        `timeout` - The new default timeout in milliseconds. A non-positive value means an infinite timeout.

    - #### destroy

          public void destroy()

      Cleans up the resources still in use by WebSocket sessions created from this container. This includes closing sessions and cancelling `Future`s associated with blocking read/writes.

    - #### backgroundProcess

          public void backgroundProcess()

      Specified by:
        `backgroundProcess` in interface `BackgroundProcess`

    - #### setProcessPeriod

          public void setProcessPeriod(int period)

      Specified by:
        `setProcessPeriod` in interface `BackgroundProcess`

    - #### getProcessPeriod

          public int getProcessPeriod()

      The default value is 10 which means session expirations are processed every 10 seconds.
      Specified by:
        `getProcessPeriod` in interface `BackgroundProcess`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.