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`