public class WebSocketServerFactory extends ContainerLifeCycle implements WebSocketCreator, WebSocketContainerScope, WebSocketServletFactory
AbstractLifeCycle.AbstractLifeCycleListener
WebSocketServletFactory.Loader
Container.InheritedListener, Container.Listener
LifeCycle.Listener
Modifier and Type | Field and Description |
---|---|
private ByteBufferPool |
bufferPool |
private javax.servlet.ServletContext |
context |
private java.lang.ClassLoader |
contextClassloader |
private WebSocketCreator |
creator |
private WebSocketPolicy |
defaultPolicy |
private EventDriverFactory |
eventDriverFactory |
private java.util.concurrent.Executor |
executor |
private WebSocketExtensionFactory |
extensionFactory |
private java.util.Map<java.lang.Integer,WebSocketHandshake> |
handshakes |
private java.util.List<WebSocketSessionListener> |
listeners |
private static Logger |
LOG |
private DecoratedObjectFactory |
objectFactory |
private java.util.List<java.lang.Class<?>> |
registeredSocketClasses |
private Scheduler |
scheduler |
private java.util.List<SessionFactory> |
sessionFactories |
private SessionTracker |
sessionTracker |
private java.lang.String |
supportedVersions |
Modifier | Constructor and Description |
---|---|
|
WebSocketServerFactory()
Entry point for Spring Boot's MockMVC framework
|
|
WebSocketServerFactory(javax.servlet.ServletContext context) |
|
WebSocketServerFactory(javax.servlet.ServletContext context,
ByteBufferPool bufferPool) |
|
WebSocketServerFactory(javax.servlet.ServletContext context,
WebSocketPolicy policy)
Entry point for
WebSocketServletFactory.Loader |
|
WebSocketServerFactory(javax.servlet.ServletContext context,
WebSocketPolicy policy,
ByteBufferPool bufferPool) |
private |
WebSocketServerFactory(javax.servlet.ServletContext context,
WebSocketPolicy policy,
DecoratedObjectFactory objectFactory,
java.util.concurrent.Executor executor,
ByteBufferPool bufferPool) |
protected |
WebSocketServerFactory(WebSocketPolicy policy,
java.util.concurrent.Executor executor,
ByteBufferPool bufferPool)
Protected entry point for
WebSocketHandler |
Modifier and Type | Method and Description |
---|---|
boolean |
acceptWebSocket(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
boolean |
acceptWebSocket(WebSocketCreator creator,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
void |
addSessionFactory(SessionFactory sessionFactory) |
void |
addSessionListener(WebSocketSessionListener listener) |
private WebSocketSession |
createSession(java.net.URI requestURI,
EventDriver websocket,
LogicalConnection connection) |
java.lang.Object |
createWebSocket(ServletUpgradeRequest req,
ServletUpgradeResponse resp)
Default Creator logic
|
protected void |
doStart()
Starts the managed lifecycle beans in the order they were added.
|
private DecoratedObjectFactory |
findDecoratedObjectFactory()
Attempt to find the DecoratedObjectFactory that should be used.
|
private java.util.concurrent.Executor |
findExecutor()
Attempt to find the Executor that should be used.
|
ByteBufferPool |
getBufferPool()
The configured Container Buffer Pool.
|
WebSocketCreator |
getCreator() |
EventDriverFactory |
getEventDriverFactory() |
java.util.concurrent.Executor |
getExecutor()
Executor in use by the container.
|
ExtensionFactory |
getExtensionFactory() |
DecoratedObjectFactory |
getObjectFactory()
Object Factory used to create objects.
|
java.util.Collection<WebSocketSession> |
getOpenSessions() |
WebSocketPolicy |
getPolicy()
The policy the container is running on.
|
private boolean |
getSendServerVersion(Connector connector) |
java.util.Collection<WebSocketSessionListener> |
getSessionListeners() |
SslContextFactory |
getSslContextFactory()
The SslContextFactory in use by the container.
|
boolean |
isUpgradeRequest(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
void |
register(java.lang.Class<?> websocketPojo)
Register a websocket class pojo with the default
WebSocketCreator . |
void |
removeSessionListener(WebSocketSessionListener listener) |
void |
setCreator(WebSocketCreator creator) |
java.lang.String |
toString() |
private boolean |
upgrade(HttpConnection http,
ServletUpgradeRequest request,
ServletUpgradeResponse response,
EventDriver driver)
Upgrade the request/response to a WebSocket Connection.
|
addBean, addBean, addBean, addEventListener, addManaged, contains, destroy, doStop, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
isRunning
start, stop
dumpObjects, dumpSelf
private static final Logger LOG
private final java.lang.ClassLoader contextClassloader
private final java.util.Map<java.lang.Integer,WebSocketHandshake> handshakes
private final Scheduler scheduler
private final java.util.List<WebSocketSessionListener> listeners
private final java.lang.String supportedVersions
private final WebSocketPolicy defaultPolicy
private final EventDriverFactory eventDriverFactory
private final ByteBufferPool bufferPool
private final WebSocketExtensionFactory extensionFactory
private final javax.servlet.ServletContext context
private final java.util.List<SessionFactory> sessionFactories
private final SessionTracker sessionTracker
private final java.util.List<java.lang.Class<?>> registeredSocketClasses
private java.util.concurrent.Executor executor
private DecoratedObjectFactory objectFactory
private WebSocketCreator creator
public WebSocketServerFactory()
public WebSocketServerFactory(javax.servlet.ServletContext context)
public WebSocketServerFactory(javax.servlet.ServletContext context, ByteBufferPool bufferPool)
public WebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy)
WebSocketServletFactory.Loader
context
- the servlet contextpolicy
- the policy to usepublic WebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy, ByteBufferPool bufferPool)
protected WebSocketServerFactory(WebSocketPolicy policy, java.util.concurrent.Executor executor, ByteBufferPool bufferPool)
WebSocketHandler
policy
- the policy to useexecutor
- the executor to usebufferPool
- the buffer pool to useprivate WebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy, DecoratedObjectFactory objectFactory, java.util.concurrent.Executor executor, ByteBufferPool bufferPool)
public void addSessionListener(WebSocketSessionListener listener)
addSessionListener
in interface WebSocketContainerScope
public void removeSessionListener(WebSocketSessionListener listener)
removeSessionListener
in interface WebSocketContainerScope
public java.util.Collection<WebSocketSessionListener> getSessionListeners()
getSessionListeners
in interface WebSocketContainerScope
public boolean acceptWebSocket(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException
acceptWebSocket
in interface WebSocketServletFactory
java.io.IOException
public boolean acceptWebSocket(WebSocketCreator creator, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException
acceptWebSocket
in interface WebSocketServletFactory
java.io.IOException
public void addSessionFactory(SessionFactory sessionFactory)
private WebSocketSession createSession(java.net.URI requestURI, EventDriver websocket, LogicalConnection connection)
public java.lang.Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp)
createWebSocket
in interface WebSocketCreator
req
- the request detailsresp
- the response detailsprotected void doStart() throws java.lang.Exception
ContainerLifeCycle
doStart
in class ContainerLifeCycle
java.lang.Exception
private DecoratedObjectFactory findDecoratedObjectFactory()
private java.util.concurrent.Executor findExecutor()
public ByteBufferPool getBufferPool()
WebSocketContainerScope
getBufferPool
in interface WebSocketContainerScope
public WebSocketCreator getCreator()
getCreator
in interface WebSocketServletFactory
public java.util.concurrent.Executor getExecutor()
WebSocketContainerScope
getExecutor
in interface WebSocketContainerScope
public DecoratedObjectFactory getObjectFactory()
WebSocketContainerScope
getObjectFactory
in interface WebSocketContainerScope
public EventDriverFactory getEventDriverFactory()
public ExtensionFactory getExtensionFactory()
getExtensionFactory
in interface WebSocketServletFactory
public java.util.Collection<WebSocketSession> getOpenSessions()
public WebSocketPolicy getPolicy()
WebSocketContainerScope
getPolicy
in interface WebSocketContainerScope
getPolicy
in interface WebSocketServletFactory
public SslContextFactory getSslContextFactory()
WebSocketContainerScope
getSslContextFactory
in interface WebSocketContainerScope
public boolean isUpgradeRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
isUpgradeRequest
in interface WebSocketServletFactory
public void register(java.lang.Class<?> websocketPojo)
WebSocketServletFactory
WebSocketCreator
.
Note: only required if using the default WebSocketCreator
provided by this factory.
register
in interface WebSocketServletFactory
websocketPojo
- the class to instantiate for each incoming websocket upgrade request.public void setCreator(WebSocketCreator creator)
setCreator
in interface WebSocketServletFactory
private boolean upgrade(HttpConnection http, ServletUpgradeRequest request, ServletUpgradeResponse response, EventDriver driver) throws java.io.IOException
http
- the raw http connectionrequest
- The request to upgraderesponse
- The response to upgradedriver
- The websocket handler implementation to usejava.io.IOException
private boolean getSendServerVersion(Connector connector)
public java.lang.String toString()
toString
in class AbstractLifeCycle