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

All Methods Instance Methods Concrete Methods
`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, getInstanceManager, 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)