Class WsServerContainer
java.lang.Object
org.apache.tomcat.websocket.WsWebSocketContainer
org.apache.tomcat.websocket.server.WsServerContainer
- All Implemented Interfaces:
ServerContainer, WebSocketContainer, BackgroundProcess
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.
-
Method Summary
Modifier and TypeMethodDescriptionvoidPublished the provided endpoint implementation at the specified path with the specified configuration.voidaddEndpoint(Class<?> pojo) Provides the equivalent ofaddEndpoint(ServerEndpointConfig)for publishing plain old java objects (POJOs) that have been annotated as WebSocket endpoints.voidcloseAuthenticatedSession(String httpSessionId) Closes all WebSocket sessions associated with the given authenticated HTTP session.findMapping(String path) Finds the endpoint configuration that matches the given path.protected InstanceManagergetInstanceManager(ClassLoader classLoader) Returns the instance manager for the given class loader.protected WsWriteTimeoutReturns the write timeout handler.protected voidregisterSession(Object key, WsSession wsSession) Registers a WebSocket session.protected voidunregisterSession(Object key, WsSession wsSession) Unregisters a WebSocket session.voidupgradeHttpToWebSocket(Object httpServletRequest, Object httpServletResponse, ServerEndpointConfig sec, Map<String, String> pathParameters) Upgrade the HTTP connection represented by theHttpServletRequestandHttpServletResponseto the WebSocket protocol and establish a WebSocket connection as per the providedServerEndpointConfig.Methods inherited from class WsWebSocketContainer
backgroundProcess, connectToServer, connectToServer, connectToServer, connectToServer, destroy, getDefaultAsyncSendTimeout, getDefaultMaxBinaryMessageBufferSize, getDefaultMaxSessionIdleTimeout, getDefaultMaxTextMessageBufferSize, getInstalledExtensions, getProcessPeriod, setAsyncSendTimeout, setDefaultMaxBinaryMessageBufferSize, setDefaultMaxSessionIdleTimeout, setDefaultMaxTextMessageBufferSize, setInstanceManager, setProcessPeriodMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface WebSocketContainer
connectToServer, connectToServer, connectToServer, connectToServer, getDefaultAsyncSendTimeout, getDefaultMaxBinaryMessageBufferSize, getDefaultMaxSessionIdleTimeout, getDefaultMaxTextMessageBufferSize, getInstalledExtensions, setAsyncSendTimeout, setDefaultMaxBinaryMessageBufferSize, setDefaultMaxSessionIdleTimeout, setDefaultMaxTextMessageBufferSize
-
Method Details
-
addEndpoint
Published the provided endpoint implementation at the specified path with the specified configuration.WsServerContainer(ServletContext)must be called before calling this method.- Specified by:
addEndpointin interfaceServerContainer- Parameters:
sec- The configuration to use when creating endpoint instances- Throws:
DeploymentException- if the endpoint cannot be published as requested
-
addEndpoint
Provides the equivalent ofaddEndpoint(ServerEndpointConfig)for publishing plain old java objects (POJOs) that have been annotated as WebSocket endpoints.- Specified by:
addEndpointin interfaceServerContainer- Parameters:
pojo- The annotated POJO- Throws:
DeploymentException- If the endpoint cannot be deployed
-
upgradeHttpToWebSocket
public void upgradeHttpToWebSocket(Object httpServletRequest, Object httpServletResponse, ServerEndpointConfig sec, Map<String, String> pathParameters) throws IOException, DeploymentExceptionDescription copied from interface:jakarta.websocket.server.ServerContainerUpgrade the HTTP connection represented by theHttpServletRequestandHttpServletResponseto the WebSocket protocol and establish a WebSocket connection as per the providedServerEndpointConfig.This method is primarily intended to be used by frameworks that implement the front-controller pattern. It does not deploy the provided endpoint.
If the WebSocket implementation is not deployed as part of a Jakarta Servlet container, this method will throw an
UnsupportedOperationException.- Specified by:
upgradeHttpToWebSocketin interfaceServerContainer- Parameters:
httpServletRequest- TheHttpServletRequestto be processed as a WebSocket handshake as per section 4.0 of RFC 6455.httpServletResponse- TheHttpServletResponseto be used when processing thehttpServletRequestas a WebSocket handshake as per section 4.0 of RFC 6455.sec- The server endpoint configuration to use to configure the WebSocket endpointpathParameters- Provides a mapping of path parameter names and values, if any, to be used for the WebSocket connection established by the call to this method. If no such mapping is defined, an empty Map must be passed.- Throws:
IOException- if an I/O error occurs during the establishment of a WebSocket connectionDeploymentException- if a configuration error prevents the establishment of a WebSocket connection
-
findMapping
Finds the endpoint configuration that matches the given path.- Parameters:
path- the URI path to match- Returns:
- the mapping result, or null if no match is found
-
getTimeout
Returns the write timeout handler.- Returns:
- the write timeout handler
-
getInstanceManager
Returns the instance manager for the given class loader. Overridden to make it visible to other classes in this package.- Overrides:
getInstanceManagerin classWsWebSocketContainer- Parameters:
classLoader- the class loader- Returns:
- the instance manager
-
registerSession
Registers a WebSocket session. Overridden to make it visible to other classes in this package.- Overrides:
registerSessionin classWsWebSocketContainer- Parameters:
key- the session keywsSession- the session to register
-
unregisterSession
Unregisters a WebSocket session. Overridden to make it visible to other classes in this package.- Overrides:
unregisterSessionin classWsWebSocketContainer- Parameters:
key- the session keywsSession- the session to unregister
-
closeAuthenticatedSession
Closes all WebSocket sessions associated with the given authenticated HTTP session.- Parameters:
httpSessionId- the HTTP session ID
-