org.apache.tomcat.websocket.server

## Class WsServerContainer

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

- All Implemented Interfaces:
    ServerContainer, WebSocketContainer, BackgroundProcess

      public class WsServerContainer
      extends WsWebSocketContainer
      implements ServerContainer

  Provides a per class loader (i.e. per web application) instance of a ServerContainer. Web application wide defaults may be configured by setting the following servlet context initialisation parameters to the desired values.
  - `Constants.BINARY_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM`
  - `Constants.TEXT_BUFFER_SIZE_SERVLET_CONTEXT_INIT_PARAM`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addEndpoint(Class<?> pojo)` Provides the equivalent of `addEndpoint(ServerEndpointConfig)` for publishing plain old java objects (POJOs) that have been annotated as WebSocket endpoints.
    `void` | `addEndpoint(ServerEndpointConfig sec)` Published the provided endpoint implementation at the specified path with the specified configuration.
    `void` | `closeAuthenticatedSession(String httpSessionId)`
    `void` | `doUpgrade(HttpServletRequest request, HttpServletResponse response, ServerEndpointConfig sec, Map<String,String> pathParams)` Until the WebSocket specification provides such a mechanism, this Tomcat proprietary method is provided to enable applications to programmatically determine whether or not to upgrade an individual request to WebSocket.
    `org.apache.tomcat.websocket.server.WsMappingResult` | `findMapping(String path)`
    `protected WsWriteTimeout` | `getTimeout()`
    `boolean` | `isEnforceNoAddAfterHandshake()`
    `protected void` | `registerSession(Object key, WsSession wsSession)` Overridden to make it visible to other classes in this package.
    `void` | `setEnforceNoAddAfterHandshake(boolean enforceNoAddAfterHandshake)`
    `protected void` | `unregisterSession(Object key, WsSession wsSession)` Overridden to make it visible to other classes in this package.

    - ### Methods inherited from class org.apache.tomcat.websocket.WsWebSocketContainer

      `backgroundProcess, connectToServer, connectToServer, connectToServer, connectToServer, destroy, getDefaultAsyncSendTimeout, getDefaultMaxBinaryMessageBufferSize, getDefaultMaxSessionIdleTimeout, getDefaultMaxTextMessageBufferSize, getInstalledExtensions, getProcessPeriod, setAsyncSendTimeout, setDefaultMaxBinaryMessageBufferSize, setDefaultMaxSessionIdleTimeout, setDefaultMaxTextMessageBufferSize, setInstanceManager, setProcessPeriod`

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

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

    - ### Methods inherited from interface javax.websocket.WebSocketContainer

      `connectToServer, connectToServer, connectToServer, connectToServer, getDefaultAsyncSendTimeout, getDefaultMaxBinaryMessageBufferSize, getDefaultMaxSessionIdleTimeout, getDefaultMaxTextMessageBufferSize, getInstalledExtensions, setAsyncSendTimeout, setDefaultMaxBinaryMessageBufferSize, setDefaultMaxSessionIdleTimeout, setDefaultMaxTextMessageBufferSize`

- - ### Method Detail

    - #### addEndpoint

          public void addEndpoint(ServerEndpointConfig sec)
                           throws DeploymentException

      Published the provided endpoint implementation at the specified path with the specified configuration. `WsServerContainer(ServletContext)` must be called before calling this method.
      Specified by:
        `addEndpoint` in interface `ServerContainer`
      Parameters:
        `sec` - The configuration to use when creating endpoint instances
      Throws:
        `DeploymentException` - if the endpoint cannot be published as requested

    - #### addEndpoint

          public void addEndpoint(Class<?> pojo)
                           throws DeploymentException

      Provides the equivalent of `addEndpoint(ServerEndpointConfig)` for publishing plain old java objects (POJOs) that have been annotated as WebSocket endpoints.
      Specified by:
        `addEndpoint` in interface `ServerContainer`
      Parameters:
        `pojo` - The annotated POJO
      Throws:
        `DeploymentException`

    - #### doUpgrade

          public void doUpgrade(HttpServletRequest request,
                       HttpServletResponse response,
                       ServerEndpointConfig sec,
                       Map<String,String> pathParams)
                         throws ServletException,
                                IOException

      Until the WebSocket specification provides such a mechanism, this Tomcat proprietary method is provided to enable applications to programmatically determine whether or not to upgrade an individual request to WebSocket.

      Note: This method is not used by Tomcat but is used directly by third-party code and must not be removed.

      Parameters:
        `request` - The request object to be upgraded
        `response` - The response object to be populated with the result of the upgrade
        `sec` - The server endpoint to use to process the upgrade request
        `pathParams` - The path parameters associated with the upgrade request
      Throws:
        `ServletException` - If a configuration error prevents the upgrade from taking place
        `IOException` - If an I/O error occurs during the upgrade process

    - #### findMapping

          public org.apache.tomcat.websocket.server.WsMappingResult findMapping(String path)

    - #### isEnforceNoAddAfterHandshake

          public boolean isEnforceNoAddAfterHandshake()

    - #### setEnforceNoAddAfterHandshake

          public void setEnforceNoAddAfterHandshake(boolean enforceNoAddAfterHandshake)

    - #### getTimeout

          protected WsWriteTimeout getTimeout()

    - #### registerSession

          protected void registerSession(Object key,
                             WsSession wsSession)

      Overridden to make it visible to other classes in this package.
      Overrides:
        `registerSession` in class `WsWebSocketContainer`

    - #### unregisterSession

          protected void unregisterSession(Object key,
                               WsSession wsSession)

      Overridden to make it visible to other classes in this package.
      Overrides:
        `unregisterSession` in class `WsWebSocketContainer`

    - #### closeAuthenticatedSession

          public void closeAuthenticatedSession(String httpSessionId)

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