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
Client-side WebSocket container implementation.
  • Constructor Details

    • WsWebSocketContainer

      public WsWebSocketContainer()
      Default constructor.
  • Method Details

    • getInstanceManager

      protected InstanceManager getInstanceManager(ClassLoader classLoader)
      Returns the instance manager for the given class loader.
      Parameters:
      classLoader - the class loader
      Returns:
      the instance manager
    • setInstanceManager

      protected void setInstanceManager(InstanceManager instanceManager)
      Sets the instance manager for this container.
      Parameters:
      instanceManager - the instance manager
    • connectToServer

      public Session connectToServer(Object pojo, URI path) throws DeploymentException
      Description copied from interface: jakarta.websocket.WebSocketContainer
      Creates a new connection to the WebSocket server endpoint.
      Specified by:
      connectToServer in interface WebSocketContainer
      Parameters:
      pojo - The POJO endpoint instance that will handle responses from the server
      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(Class<?> annotatedEndpointClass, URI path) throws DeploymentException
      Description copied from interface: jakarta.websocket.WebSocketContainer
      Creates a new connection to the WebSocket server endpoint.
      Specified by:
      connectToServer in interface WebSocketContainer
      Parameters:
      annotatedEndpointClass - The annotated endpoint class. An instance of this class will be created to handle responses from the server
      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(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)
      Registers a WebSocket session.
      Parameters:
      key - the session key
      wsSession - the session to register
    • unregisterSession

      protected void unregisterSession(Object key, WsSession wsSession)
      Unregisters a WebSocket session.
      Parameters:
      key - the session key
      wsSession - the session to unregister
    • 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 Futures associated with blocking read/writes.
    • backgroundProcess

      public void backgroundProcess()
      Description copied from interface: BackgroundProcess
      Performs background processing.
      Specified by:
      backgroundProcess in interface BackgroundProcess
    • setProcessPeriod

      public void setProcessPeriod(int period)
      Description copied from interface: BackgroundProcess
      Sets the period, in seconds, between invocations of BackgroundProcess.backgroundProcess().
      Specified by:
      setProcessPeriod in interface BackgroundProcess
      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:
      getProcessPeriod in interface BackgroundProcess