Package 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
  Description
  `WsWebSocketContainer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `backgroundProcess()`
  `Session`
  `connectToServer(Endpoint endpoint, ClientEndpointConfig clientEndpointConfiguration, URI path)`
  Creates a new connection to the WebSocket.
  `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(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.
  `protected InstanceManager`
  `getInstanceManager(ClassLoader classLoader)`
  `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 Details

  - ### WsWebSocketContainer

    public WsWebSocketContainer()

- ## Method Details

  - ### getInstanceManager

    protected InstanceManager getInstanceManager(ClassLoader classLoader)

  - ### 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: `jakarta.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: `jakarta.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: `jakarta.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: `jakarta.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: `jakarta.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: `jakarta.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: `jakarta.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: `jakarta.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`