public class ServerWebSocketContainer extends Object implements jakarta.websocket.server.ServerContainer, Closeable
ServerContainer implementation which allows to deploy endpoints for a server.| Modifier and Type | Class and Description |
|---|---|
static interface |
ServerWebSocketContainer.PauseListener |
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_WEB_SOCKET_TIMEOUT_SECONDS |
static String |
TIMEOUT |
| Constructor and Description |
|---|
ServerWebSocketContainer(ClassIntrospecter classIntrospecter,
ClassLoader classLoader,
Supplier<org.xnio.XnioWorker> xnioWorker,
ByteBufferPool bufferPool,
List<ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker) |
ServerWebSocketContainer(ClassIntrospecter classIntrospecter,
ClassLoader classLoader,
Supplier<org.xnio.XnioWorker> xnioWorker,
ByteBufferPool bufferPool,
List<ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker,
InetSocketAddress clientBindAddress,
WebSocketReconnectHandler reconnectHandler) |
ServerWebSocketContainer(ClassIntrospecter classIntrospecter,
ClassLoader classLoader,
Supplier<org.xnio.XnioWorker> xnioWorker,
ByteBufferPool bufferPool,
List<ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker,
InetSocketAddress clientBindAddress,
WebSocketReconnectHandler reconnectHandler,
List<jakarta.websocket.Extension> installedExtensions) |
ServerWebSocketContainer(ClassIntrospecter classIntrospecter,
Supplier<org.xnio.XnioWorker> xnioWorker,
ByteBufferPool bufferPool,
List<ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker,
boolean clientMode) |
| Modifier and Type | Method and Description |
|---|---|
void |
addEndpoint(Class<?> endpoint) |
void |
addEndpoint(jakarta.websocket.server.ServerEndpointConfig endpoint) |
void |
close() |
void |
close(int waitTime) |
jakarta.websocket.Session |
connectToServer(Class<?> aClass,
URI uri) |
jakarta.websocket.Session |
connectToServer(Class<?> aClass,
WebSocketClient.ConnectionBuilder connectionBuilder) |
jakarta.websocket.Session |
connectToServer(Class<? extends jakarta.websocket.Endpoint> endpointClass,
jakarta.websocket.ClientEndpointConfig cec,
URI path) |
jakarta.websocket.Session |
connectToServer(jakarta.websocket.Endpoint endpointInstance,
jakarta.websocket.ClientEndpointConfig config,
URI path) |
jakarta.websocket.Session |
connectToServer(jakarta.websocket.Endpoint endpointInstance,
jakarta.websocket.ClientEndpointConfig config,
WebSocketClient.ConnectionBuilder connectionBuilder) |
jakarta.websocket.Session |
connectToServer(Object annotatedEndpointInstance,
URI path) |
jakarta.websocket.Session |
connectToServer(Object annotatedEndpointInstance,
WebSocketClient.ConnectionBuilder connectionBuilder) |
void |
deploymentComplete() |
void |
doUpgrade(jakarta.servlet.http.HttpServletRequest request,
jakarta.servlet.http.HttpServletResponse response,
jakarta.websocket.server.ServerEndpointConfig sec,
Map<String,String> pathParams) |
ByteBufferPool |
getBufferPool() |
List<ConfiguredServerEndpoint> |
getConfiguredServerEndpoints() |
ServletContextImpl |
getContextToAddFilter() |
long |
getDefaultAsyncSendTimeout() |
int |
getDefaultMaxBinaryMessageBufferSize() |
long |
getDefaultMaxSessionIdleTimeout() |
int |
getDefaultMaxTextMessageBufferSize() |
Set<jakarta.websocket.Extension> |
getInstalledExtensions() |
WebSocketReconnectHandler |
getWebSocketReconnectHandler() |
org.xnio.XnioWorker |
getXnioWorker() |
void |
invokeEndpointMethod(Executor executor,
Runnable invocation)
Runs a web socket invocation, setting up the threads and dispatching a thread pool
|
void |
invokeEndpointMethod(Runnable invocation)
Directly invokes an endpoint method, without dispatching to an executor
|
boolean |
isClosed() |
boolean |
isDispatchToWorker() |
void |
pause(ServerWebSocketContainer.PauseListener listener)
Pauses the container
|
void |
resume()
resumes a paused container
|
void |
setAsyncSendTimeout(long defaultAsyncSendTimeout) |
void |
setContextToAddFilter(ServletContextImpl contextToAddFilter) |
void |
setDefaultMaxBinaryMessageBufferSize(int defaultMaxBinaryMessageBufferSize) |
void |
setDefaultMaxSessionIdleTimeout(long timeout) |
void |
setDefaultMaxTextMessageBufferSize(int defaultMaxTextMessageBufferSize) |
void |
validateDeployment() |
public static final String TIMEOUT
public static final int DEFAULT_WEB_SOCKET_TIMEOUT_SECONDS
public ServerWebSocketContainer(ClassIntrospecter classIntrospecter, Supplier<org.xnio.XnioWorker> xnioWorker, ByteBufferPool bufferPool, List<ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker, boolean clientMode)
public ServerWebSocketContainer(ClassIntrospecter classIntrospecter, ClassLoader classLoader, Supplier<org.xnio.XnioWorker> xnioWorker, ByteBufferPool bufferPool, List<ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker)
public ServerWebSocketContainer(ClassIntrospecter classIntrospecter, ClassLoader classLoader, Supplier<org.xnio.XnioWorker> xnioWorker, ByteBufferPool bufferPool, List<ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker, InetSocketAddress clientBindAddress, WebSocketReconnectHandler reconnectHandler)
public ServerWebSocketContainer(ClassIntrospecter classIntrospecter, ClassLoader classLoader, Supplier<org.xnio.XnioWorker> xnioWorker, ByteBufferPool bufferPool, List<ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker, InetSocketAddress clientBindAddress, WebSocketReconnectHandler reconnectHandler, List<jakarta.websocket.Extension> installedExtensions)
public long getDefaultAsyncSendTimeout()
getDefaultAsyncSendTimeout in interface jakarta.websocket.WebSocketContainerpublic void setAsyncSendTimeout(long defaultAsyncSendTimeout)
setAsyncSendTimeout in interface jakarta.websocket.WebSocketContainerpublic jakarta.websocket.Session connectToServer(Object annotatedEndpointInstance, WebSocketClient.ConnectionBuilder connectionBuilder) throws jakarta.websocket.DeploymentException, IOException
jakarta.websocket.DeploymentExceptionIOExceptionpublic jakarta.websocket.Session connectToServer(Object annotatedEndpointInstance, URI path) throws jakarta.websocket.DeploymentException, IOException
connectToServer in interface jakarta.websocket.WebSocketContainerjakarta.websocket.DeploymentExceptionIOExceptionpublic jakarta.websocket.Session connectToServer(Class<?> aClass, WebSocketClient.ConnectionBuilder connectionBuilder) throws jakarta.websocket.DeploymentException, IOException
jakarta.websocket.DeploymentExceptionIOExceptionpublic jakarta.websocket.Session connectToServer(Class<?> aClass, URI uri) throws jakarta.websocket.DeploymentException, IOException
connectToServer in interface jakarta.websocket.WebSocketContainerjakarta.websocket.DeploymentExceptionIOExceptionpublic jakarta.websocket.Session connectToServer(jakarta.websocket.Endpoint endpointInstance,
jakarta.websocket.ClientEndpointConfig config,
URI path)
throws jakarta.websocket.DeploymentException,
IOException
connectToServer in interface jakarta.websocket.WebSocketContainerjakarta.websocket.DeploymentExceptionIOExceptionpublic jakarta.websocket.Session connectToServer(jakarta.websocket.Endpoint endpointInstance,
jakarta.websocket.ClientEndpointConfig config,
WebSocketClient.ConnectionBuilder connectionBuilder)
throws jakarta.websocket.DeploymentException,
IOException
jakarta.websocket.DeploymentExceptionIOExceptionpublic jakarta.websocket.Session connectToServer(Class<? extends jakarta.websocket.Endpoint> endpointClass, jakarta.websocket.ClientEndpointConfig cec, URI path) throws jakarta.websocket.DeploymentException, IOException
connectToServer in interface jakarta.websocket.WebSocketContainerjakarta.websocket.DeploymentExceptionIOExceptionpublic void doUpgrade(jakarta.servlet.http.HttpServletRequest request,
jakarta.servlet.http.HttpServletResponse response,
jakarta.websocket.server.ServerEndpointConfig sec,
Map<String,String> pathParams)
throws jakarta.servlet.ServletException,
IOException
jakarta.servlet.ServletExceptionIOExceptionpublic long getDefaultMaxSessionIdleTimeout()
getDefaultMaxSessionIdleTimeout in interface jakarta.websocket.WebSocketContainerpublic void setDefaultMaxSessionIdleTimeout(long timeout)
setDefaultMaxSessionIdleTimeout in interface jakarta.websocket.WebSocketContainerpublic int getDefaultMaxBinaryMessageBufferSize()
getDefaultMaxBinaryMessageBufferSize in interface jakarta.websocket.WebSocketContainerpublic void setDefaultMaxBinaryMessageBufferSize(int defaultMaxBinaryMessageBufferSize)
setDefaultMaxBinaryMessageBufferSize in interface jakarta.websocket.WebSocketContainerpublic int getDefaultMaxTextMessageBufferSize()
getDefaultMaxTextMessageBufferSize in interface jakarta.websocket.WebSocketContainerpublic void setDefaultMaxTextMessageBufferSize(int defaultMaxTextMessageBufferSize)
setDefaultMaxTextMessageBufferSize in interface jakarta.websocket.WebSocketContainerpublic Set<jakarta.websocket.Extension> getInstalledExtensions()
getInstalledExtensions in interface jakarta.websocket.WebSocketContainerpublic void invokeEndpointMethod(Executor executor, Runnable invocation)
Unfortunately we need to dispatch to a thread pool, because there is a good chance that the endpoint will use blocking IO methods. We suspend recieves while this is in progress, to make sure that we do not have multiple methods invoked at once.
invocation - The task to runpublic void invokeEndpointMethod(Runnable invocation)
invocation - The invocationpublic void addEndpoint(Class<?> endpoint) throws jakarta.websocket.DeploymentException
addEndpoint in interface jakarta.websocket.server.ServerContainerjakarta.websocket.DeploymentExceptionpublic void addEndpoint(jakarta.websocket.server.ServerEndpointConfig endpoint)
throws jakarta.websocket.DeploymentException
addEndpoint in interface jakarta.websocket.server.ServerContainerjakarta.websocket.DeploymentExceptionpublic void validateDeployment()
public void deploymentComplete()
public List<ConfiguredServerEndpoint> getConfiguredServerEndpoints()
public ServletContextImpl getContextToAddFilter()
public void setContextToAddFilter(ServletContextImpl contextToAddFilter)
public void close(int waitTime)
public void close()
close in interface Closeableclose in interface AutoCloseablepublic ByteBufferPool getBufferPool()
public org.xnio.XnioWorker getXnioWorker()
public void pause(ServerWebSocketContainer.PauseListener listener)
listener - public void resume()
public WebSocketReconnectHandler getWebSocketReconnectHandler()
public boolean isClosed()
public boolean isDispatchToWorker()
Copyright © 2022 JBoss by Red Hat. All rights reserved.