Class WsWebSocketContainer
java.lang.Object
org.apache.tomcat.websocket.WsWebSocketContainer
- All Implemented Interfaces:
WebSocketContainer, BackgroundProcess
- Direct Known Subclasses:
WsServerContainer
Client-side WebSocket container implementation.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidPerforms background processing.connectToServer(Endpoint endpoint, ClientEndpointConfig clientEndpointConfiguration, URI path) Creates a new connection to the WebSocket.connectToServer(Class<?> annotatedEndpointClass, URI path) Creates a new connection to the WebSocket server endpoint.connectToServer(Class<? extends Endpoint> clazz, ClientEndpointConfig clientEndpointConfiguration, URI path) Creates a new connection to the WebSocket.connectToServer(Object pojo, URI path) Creates a new connection to the WebSocket server endpoint.voiddestroy()Cleans up the resources still in use by WebSocket sessions created from this container.longGet the default timeout for sending a message asynchronously.intGet the default maximum buffer size for binary messages.longGet the current default session idle timeout.intGet the default maximum buffer size for text messages.Get the installed extensions.protected InstanceManagergetInstanceManager(ClassLoader classLoader) Returns the instance manager for the given class loader.intThe default value is 10 which means session expirations are processed every 10 seconds.protected voidregisterSession(Object key, WsSession wsSession) Registers a WebSocket session.voidsetAsyncSendTimeout(long timeout) Set the default timeout for sending a message asynchronously.voidsetDefaultMaxBinaryMessageBufferSize(int max) Set the default maximum buffer size for binary messages.voidsetDefaultMaxSessionIdleTimeout(long timeout) Set the default session idle timeout.voidsetDefaultMaxTextMessageBufferSize(int max) Set the default maximum buffer size for text messages.protected voidsetInstanceManager(InstanceManager instanceManager) Sets the instance manager for this container.voidsetProcessPeriod(int period) Sets the period, in seconds, between invocations ofBackgroundProcess.backgroundProcess().protected voidunregisterSession(Object key, WsSession wsSession) Unregisters a WebSocket session.
-
Constructor Details
-
WsWebSocketContainer
public WsWebSocketContainer()Default constructor.
-
-
Method Details
-
getInstanceManager
Returns the instance manager for the given class loader.- Parameters:
classLoader- the class loader- Returns:
- the instance manager
-
setInstanceManager
Sets the instance manager for this container.- Parameters:
instanceManager- the instance manager
-
connectToServer
Description copied from interface:jakarta.websocket.WebSocketContainerCreates a new connection to the WebSocket server endpoint.- Specified by:
connectToServerin interfaceWebSocketContainer- Parameters:
pojo- The POJO endpoint instance that will handle responses from the serverpath- 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(Class<?> annotatedEndpointClass, URI path) throws DeploymentException Description copied from interface:jakarta.websocket.WebSocketContainerCreates a new connection to the WebSocket server endpoint.- Specified by:
connectToServerin interfaceWebSocketContainer- Parameters:
annotatedEndpointClass- The annotated endpoint class. An instance of this class will be created to handle responses from the serverpath- 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(Class<? extends Endpoint> clazz, ClientEndpointConfig clientEndpointConfiguration, URI path) throws DeploymentException Description copied from interface:jakarta.websocket.WebSocketContainerCreates a new connection to the WebSocket.- Specified by:
connectToServerin interfaceWebSocketContainer- Parameters:
clazz- An instance of this class will be created to handle responses from the serverclientEndpointConfiguration- Used to configure the new connectionpath- 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.WebSocketContainerCreates a new connection to the WebSocket.- Specified by:
connectToServerin interfaceWebSocketContainer- Parameters:
endpoint- The endpoint instance that will handle responses from the serverclientEndpointConfiguration- Used to configure the new connectionpath- 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
-
unregisterSession
-
getDefaultMaxSessionIdleTimeout
public long getDefaultMaxSessionIdleTimeout()Description copied from interface:jakarta.websocket.WebSocketContainerGet the current default session idle timeout.- Specified by:
getDefaultMaxSessionIdleTimeoutin interfaceWebSocketContainer- 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.WebSocketContainerSet the default session idle timeout.- Specified by:
setDefaultMaxSessionIdleTimeoutin interfaceWebSocketContainer- 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.WebSocketContainerGet the default maximum buffer size for binary messages.- Specified by:
getDefaultMaxBinaryMessageBufferSizein interfaceWebSocketContainer- Returns:
- The current default maximum buffer size in bytes
-
setDefaultMaxBinaryMessageBufferSize
public void setDefaultMaxBinaryMessageBufferSize(int max) Description copied from interface:jakarta.websocket.WebSocketContainerSet the default maximum buffer size for binary messages.- Specified by:
setDefaultMaxBinaryMessageBufferSizein interfaceWebSocketContainer- Parameters:
max- The new default maximum buffer size in bytes
-
getDefaultMaxTextMessageBufferSize
public int getDefaultMaxTextMessageBufferSize()Description copied from interface:jakarta.websocket.WebSocketContainerGet the default maximum buffer size for text messages.- Specified by:
getDefaultMaxTextMessageBufferSizein interfaceWebSocketContainer- Returns:
- The current default maximum buffer size in characters
-
setDefaultMaxTextMessageBufferSize
public void setDefaultMaxTextMessageBufferSize(int max) Description copied from interface:jakarta.websocket.WebSocketContainerSet the default maximum buffer size for text messages.- Specified by:
setDefaultMaxTextMessageBufferSizein interfaceWebSocketContainer- Parameters:
max- The new default maximum buffer size in characters
-
getInstalledExtensions
Get the installed extensions. Currently, this implementation does not support any extensions.- Specified by:
getInstalledExtensionsin interfaceWebSocketContainer- 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:
getDefaultAsyncSendTimeoutin interfaceWebSocketContainer- 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:
setAsyncSendTimeoutin interfaceWebSocketContainer- 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 cancellingFutures associated with blocking read/writes. -
backgroundProcess
public void backgroundProcess()Description copied from interface:BackgroundProcessPerforms background processing.- Specified by:
backgroundProcessin interfaceBackgroundProcess
-
setProcessPeriod
public void setProcessPeriod(int period) Description copied from interface:BackgroundProcessSets the period, in seconds, between invocations ofBackgroundProcess.backgroundProcess().- Specified by:
setProcessPeriodin interfaceBackgroundProcess- Parameters:
period- the period in seconds
-
getProcessPeriod
public int getProcessPeriod()The default value is 10 which means session expirations are processed every 10 seconds.- Specified by:
getProcessPeriodin interfaceBackgroundProcess
-