java.io.Closeable
, java.lang.AutoCloseable
, javax.websocket.server.ServerContainer
, javax.websocket.WebSocketContainer
public class ServerWebSocketContainer
extends java.lang.Object
implements javax.websocket.server.ServerContainer, java.io.Closeable
ServerContainer
implementation which allows to deploy endpoints for a server.Modifier and Type | Class | Description |
---|---|---|
static interface |
ServerWebSocketContainer.PauseListener |
Modifier and Type | Field | Description |
---|---|---|
static int |
DEFAULT_WEB_SOCKET_TIMEOUT_SECONDS |
|
static java.lang.String |
TIMEOUT |
Constructor | Description |
---|---|
ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter,
java.lang.ClassLoader classLoader,
org.xnio.XnioWorker xnioWorker,
io.undertow.connector.ByteBufferPool bufferPool,
java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker) |
|
ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter,
java.lang.ClassLoader classLoader,
org.xnio.XnioWorker xnioWorker,
io.undertow.connector.ByteBufferPool bufferPool,
java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker,
java.net.InetSocketAddress clientBindAddress,
WebSocketReconnectHandler reconnectHandler) |
|
ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter,
java.lang.ClassLoader classLoader,
org.xnio.XnioWorker xnioWorker,
io.undertow.connector.ByteBufferPool bufferPool,
java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker,
java.net.InetSocketAddress clientBindAddress,
WebSocketReconnectHandler reconnectHandler,
java.util.List<javax.websocket.Extension> installedExtensions) |
|
ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter,
org.xnio.XnioWorker xnioWorker,
io.undertow.connector.ByteBufferPool bufferPool,
java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers,
boolean dispatchToWorker,
boolean clientMode) |
Modifier and Type | Method | Description |
---|---|---|
void |
addEndpoint(java.lang.Class<?> endpoint) |
|
void |
addEndpoint(javax.websocket.server.ServerEndpointConfig endpoint) |
|
void |
close() |
|
void |
close(int waitTime) |
|
javax.websocket.Session |
connectToServer(java.lang.Class<?> aClass,
io.undertow.websockets.client.WebSocketClient.ConnectionBuilder connectionBuilder) |
|
javax.websocket.Session |
connectToServer(java.lang.Class<?> aClass,
java.net.URI uri) |
|
javax.websocket.Session |
connectToServer(java.lang.Class<? extends javax.websocket.Endpoint> endpointClass,
javax.websocket.ClientEndpointConfig cec,
java.net.URI path) |
|
javax.websocket.Session |
connectToServer(java.lang.Object annotatedEndpointInstance,
io.undertow.websockets.client.WebSocketClient.ConnectionBuilder connectionBuilder) |
|
javax.websocket.Session |
connectToServer(java.lang.Object annotatedEndpointInstance,
java.net.URI path) |
|
javax.websocket.Session |
connectToServer(javax.websocket.Endpoint endpointInstance,
javax.websocket.ClientEndpointConfig config,
io.undertow.websockets.client.WebSocketClient.ConnectionBuilder connectionBuilder) |
|
javax.websocket.Session |
connectToServer(javax.websocket.Endpoint endpointInstance,
javax.websocket.ClientEndpointConfig config,
java.net.URI path) |
|
void |
deploymentComplete() |
|
void |
doUpgrade(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.websocket.server.ServerEndpointConfig sec,
java.util.Map<java.lang.String,java.lang.String> pathParams) |
|
io.undertow.connector.ByteBufferPool |
getBufferPool() |
|
java.util.List<ConfiguredServerEndpoint> |
getConfiguredServerEndpoints() |
|
io.undertow.servlet.spec.ServletContextImpl |
getContextToAddFilter() |
|
long |
getDefaultAsyncSendTimeout() |
|
int |
getDefaultMaxBinaryMessageBufferSize() |
|
long |
getDefaultMaxSessionIdleTimeout() |
|
int |
getDefaultMaxTextMessageBufferSize() |
|
java.util.Set<javax.websocket.Extension> |
getInstalledExtensions() |
|
WebSocketReconnectHandler |
getWebSocketReconnectHandler() |
|
org.xnio.XnioWorker |
getXnioWorker() |
|
void |
invokeEndpointMethod(java.lang.Runnable invocation) |
Directly invokes an endpoint method, without dispatching to an executor
|
void |
invokeEndpointMethod(java.util.concurrent.Executor executor,
java.lang.Runnable invocation) |
Runs a web socket invocation, setting up the threads and dispatching a thread pool
|
boolean |
isClosed() |
|
boolean |
isDispatchToWorker() |
|
void |
pause(ServerWebSocketContainer.PauseListener listener) |
Pauses the container
|
void |
resume() |
resumes a paused container
|
void |
setAsyncSendTimeout(long defaultAsyncSendTimeout) |
|
void |
setContextToAddFilter(io.undertow.servlet.spec.ServletContextImpl contextToAddFilter) |
|
void |
setDefaultMaxBinaryMessageBufferSize(int defaultMaxBinaryMessageBufferSize) |
|
void |
setDefaultMaxSessionIdleTimeout(long timeout) |
|
void |
setDefaultMaxTextMessageBufferSize(int defaultMaxTextMessageBufferSize) |
public static final java.lang.String TIMEOUT
public static final int DEFAULT_WEB_SOCKET_TIMEOUT_SECONDS
public ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter, org.xnio.XnioWorker xnioWorker, io.undertow.connector.ByteBufferPool bufferPool, java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker, boolean clientMode)
public ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter, java.lang.ClassLoader classLoader, org.xnio.XnioWorker xnioWorker, io.undertow.connector.ByteBufferPool bufferPool, java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker)
public ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter, java.lang.ClassLoader classLoader, org.xnio.XnioWorker xnioWorker, io.undertow.connector.ByteBufferPool bufferPool, java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker, java.net.InetSocketAddress clientBindAddress, WebSocketReconnectHandler reconnectHandler)
public ServerWebSocketContainer(io.undertow.servlet.api.ClassIntrospecter classIntrospecter, java.lang.ClassLoader classLoader, org.xnio.XnioWorker xnioWorker, io.undertow.connector.ByteBufferPool bufferPool, java.util.List<io.undertow.servlet.api.ThreadSetupHandler> threadSetupHandlers, boolean dispatchToWorker, java.net.InetSocketAddress clientBindAddress, WebSocketReconnectHandler reconnectHandler, java.util.List<javax.websocket.Extension> installedExtensions)
public long getDefaultAsyncSendTimeout()
getDefaultAsyncSendTimeout
in interface javax.websocket.WebSocketContainer
public void setAsyncSendTimeout(long defaultAsyncSendTimeout)
setAsyncSendTimeout
in interface javax.websocket.WebSocketContainer
public javax.websocket.Session connectToServer(java.lang.Object annotatedEndpointInstance, io.undertow.websockets.client.WebSocketClient.ConnectionBuilder connectionBuilder) throws javax.websocket.DeploymentException, java.io.IOException
javax.websocket.DeploymentException
java.io.IOException
public javax.websocket.Session connectToServer(java.lang.Object annotatedEndpointInstance, java.net.URI path) throws javax.websocket.DeploymentException, java.io.IOException
connectToServer
in interface javax.websocket.WebSocketContainer
javax.websocket.DeploymentException
java.io.IOException
public javax.websocket.Session connectToServer(java.lang.Class<?> aClass, io.undertow.websockets.client.WebSocketClient.ConnectionBuilder connectionBuilder) throws javax.websocket.DeploymentException, java.io.IOException
javax.websocket.DeploymentException
java.io.IOException
public javax.websocket.Session connectToServer(java.lang.Class<?> aClass, java.net.URI uri) throws javax.websocket.DeploymentException, java.io.IOException
connectToServer
in interface javax.websocket.WebSocketContainer
javax.websocket.DeploymentException
java.io.IOException
public javax.websocket.Session connectToServer(javax.websocket.Endpoint endpointInstance, javax.websocket.ClientEndpointConfig config, java.net.URI path) throws javax.websocket.DeploymentException, java.io.IOException
connectToServer
in interface javax.websocket.WebSocketContainer
javax.websocket.DeploymentException
java.io.IOException
public javax.websocket.Session connectToServer(javax.websocket.Endpoint endpointInstance, javax.websocket.ClientEndpointConfig config, io.undertow.websockets.client.WebSocketClient.ConnectionBuilder connectionBuilder) throws javax.websocket.DeploymentException, java.io.IOException
javax.websocket.DeploymentException
java.io.IOException
public javax.websocket.Session connectToServer(java.lang.Class<? extends javax.websocket.Endpoint> endpointClass, javax.websocket.ClientEndpointConfig cec, java.net.URI path) throws javax.websocket.DeploymentException, java.io.IOException
connectToServer
in interface javax.websocket.WebSocketContainer
javax.websocket.DeploymentException
java.io.IOException
public void doUpgrade(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.websocket.server.ServerEndpointConfig sec, java.util.Map<java.lang.String,java.lang.String> pathParams) throws javax.servlet.ServletException, java.io.IOException
javax.servlet.ServletException
java.io.IOException
public long getDefaultMaxSessionIdleTimeout()
getDefaultMaxSessionIdleTimeout
in interface javax.websocket.WebSocketContainer
public void setDefaultMaxSessionIdleTimeout(long timeout)
setDefaultMaxSessionIdleTimeout
in interface javax.websocket.WebSocketContainer
public int getDefaultMaxBinaryMessageBufferSize()
getDefaultMaxBinaryMessageBufferSize
in interface javax.websocket.WebSocketContainer
public void setDefaultMaxBinaryMessageBufferSize(int defaultMaxBinaryMessageBufferSize)
setDefaultMaxBinaryMessageBufferSize
in interface javax.websocket.WebSocketContainer
public int getDefaultMaxTextMessageBufferSize()
getDefaultMaxTextMessageBufferSize
in interface javax.websocket.WebSocketContainer
public void setDefaultMaxTextMessageBufferSize(int defaultMaxTextMessageBufferSize)
setDefaultMaxTextMessageBufferSize
in interface javax.websocket.WebSocketContainer
public java.util.Set<javax.websocket.Extension> getInstalledExtensions()
getInstalledExtensions
in interface javax.websocket.WebSocketContainer
public void invokeEndpointMethod(java.util.concurrent.Executor executor, java.lang.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(java.lang.Runnable invocation)
invocation
- The invocationpublic void addEndpoint(java.lang.Class<?> endpoint) throws javax.websocket.DeploymentException
addEndpoint
in interface javax.websocket.server.ServerContainer
javax.websocket.DeploymentException
public void addEndpoint(javax.websocket.server.ServerEndpointConfig endpoint) throws javax.websocket.DeploymentException
addEndpoint
in interface javax.websocket.server.ServerContainer
javax.websocket.DeploymentException
public void deploymentComplete()
public java.util.List<ConfiguredServerEndpoint> getConfiguredServerEndpoints()
public io.undertow.servlet.spec.ServletContextImpl getContextToAddFilter()
public void setContextToAddFilter(io.undertow.servlet.spec.ServletContextImpl contextToAddFilter)
public void close(int waitTime)
public void close()
close
in interface java.lang.AutoCloseable
close
in interface java.io.Closeable
public io.undertow.connector.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 © 2018. All rights reserved.