Class WebSocketServerFactory
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.websocket.server.WebSocketServerFactory
-
- All Implemented Interfaces:
org.eclipse.jetty.util.component.Container,org.eclipse.jetty.util.component.Destroyable,org.eclipse.jetty.util.component.Dumpable,org.eclipse.jetty.util.component.Dumpable.DumpableContainer,org.eclipse.jetty.util.component.LifeCycle,WebSocketContainerScope,WebSocketCreator,WebSocketServletFactory
public class WebSocketServerFactory extends org.eclipse.jetty.util.component.ContainerLifeCycle implements WebSocketCreator, WebSocketContainerScope, WebSocketServletFactory
Factory to create WebSocket connections
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.websocket.servlet.WebSocketServletFactory
WebSocketServletFactory.Loader
-
-
Field Summary
Fields Modifier and Type Field Description private org.eclipse.jetty.io.ByteBufferPoolbufferPoolprivate javax.servlet.ServletContextcontextprivate java.lang.ClassLoadercontextClassloaderprivate WebSocketCreatorcreatorprivate WebSocketPolicydefaultPolicyprivate EventDriverFactoryeventDriverFactoryprivate java.util.concurrent.Executorexecutorprivate WebSocketExtensionFactoryextensionFactoryprivate java.util.Map<java.lang.Integer,WebSocketHandshake>handshakesprivate java.util.List<WebSocketSessionListener>listenersprivate static org.eclipse.jetty.util.log.LoggerLOGprivate org.eclipse.jetty.util.DecoratedObjectFactoryobjectFactoryprivate java.util.List<java.lang.Class<?>>registeredSocketClassesprivate org.eclipse.jetty.util.thread.Schedulerschedulerprivate java.util.List<SessionFactory>sessionFactoriesprivate SessionTrackersessionTrackerprivate java.lang.StringsupportedVersionsprivate static java.lang.StringWEBSOCKET_DEFLATER_POOL_ATTRIBUTEprivate static java.lang.StringWEBSOCKET_INFLATER_POOL_ATTRIBUTE
-
Constructor Summary
Constructors Modifier Constructor Description WebSocketServerFactory()Entry point for Spring Boot's MockMVC frameworkWebSocketServerFactory(javax.servlet.ServletContext context)WebSocketServerFactory(javax.servlet.ServletContext context, org.eclipse.jetty.io.ByteBufferPool bufferPool)WebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy)Entry point forWebSocketServletFactory.LoaderWebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool)privateWebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy, org.eclipse.jetty.util.DecoratedObjectFactory objectFactory, java.util.concurrent.Executor executor, org.eclipse.jetty.io.ByteBufferPool bufferPool)protectedWebSocketServerFactory(WebSocketPolicy policy, java.util.concurrent.Executor executor, org.eclipse.jetty.io.ByteBufferPool bufferPool)Protected entry point forWebSocketHandler
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanacceptWebSocket(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)booleanacceptWebSocket(WebSocketCreator creator, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)voidaddSessionFactory(SessionFactory sessionFactory)voidaddSessionListener(WebSocketSessionListener listener)private WebSocketSessioncreateSession(java.net.URI requestURI, EventDriver websocket, LogicalConnection connection)java.lang.ObjectcreateWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp)Default Creator logicprotected voiddoStart()protected voiddoStop()private org.eclipse.jetty.util.DecoratedObjectFactoryfindDecoratedObjectFactory()Attempt to find the DecoratedObjectFactory that should be used.private java.util.concurrent.ExecutorfindExecutor()Attempt to find the Executor that should be used.java.util.Set<java.lang.String>getAvailableExtensionNames()Get the set of available Extensions by registered name.org.eclipse.jetty.io.ByteBufferPoolgetBufferPool()The configured Container Buffer Pool.WebSocketCreatorgetCreator()EventDriverFactorygetEventDriverFactory()java.util.concurrent.ExecutorgetExecutor()Executor in use by the container.ExtensionFactorygetExtensionFactory()Deprecated.org.eclipse.jetty.util.DecoratedObjectFactorygetObjectFactory()Object Factory used to create objects.java.util.Collection<WebSocketSession>getOpenSessions()WebSocketPolicygetPolicy()The policy the container is running on.private booleangetSendServerVersion(org.eclipse.jetty.server.Connector connector)java.util.Collection<WebSocketSessionListener>getSessionListeners()org.eclipse.jetty.util.ssl.SslContextFactorygetSslContextFactory()The SslContextFactory in use by the container.booleanisUpgradeRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)voidregister(java.lang.Class<?> websocketPojo)Register a websocket class pojo with the defaultWebSocketCreator.voidremoveSessionListener(WebSocketSessionListener listener)voidsetCreator(WebSocketCreator creator)java.lang.StringtoString()private booleanupgrade(org.eclipse.jetty.server.HttpConnection http, ServletUpgradeRequest request, ServletUpgradeResponse response, EventDriver driver)Upgrade the request/response to a WebSocket Connection.-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, 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
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Methods inherited from interface org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
getClassLoader, isRunning
-
Methods inherited from interface org.eclipse.jetty.websocket.servlet.WebSocketServletFactory
start, stop
-
-
-
-
Field Detail
-
LOG
private static final org.eclipse.jetty.util.log.Logger LOG
-
WEBSOCKET_INFLATER_POOL_ATTRIBUTE
private static final java.lang.String WEBSOCKET_INFLATER_POOL_ATTRIBUTE
- See Also:
- Constant Field Values
-
WEBSOCKET_DEFLATER_POOL_ATTRIBUTE
private static final java.lang.String WEBSOCKET_DEFLATER_POOL_ATTRIBUTE
- See Also:
- Constant Field Values
-
contextClassloader
private final java.lang.ClassLoader contextClassloader
-
handshakes
private final java.util.Map<java.lang.Integer,WebSocketHandshake> handshakes
-
scheduler
private final org.eclipse.jetty.util.thread.Scheduler scheduler
-
listeners
private final java.util.List<WebSocketSessionListener> listeners
-
supportedVersions
private final java.lang.String supportedVersions
-
defaultPolicy
private final WebSocketPolicy defaultPolicy
-
eventDriverFactory
private final EventDriverFactory eventDriverFactory
-
bufferPool
private final org.eclipse.jetty.io.ByteBufferPool bufferPool
-
extensionFactory
private final WebSocketExtensionFactory extensionFactory
-
context
private final javax.servlet.ServletContext context
-
sessionFactories
private final java.util.List<SessionFactory> sessionFactories
-
sessionTracker
private final SessionTracker sessionTracker
-
registeredSocketClasses
private final java.util.List<java.lang.Class<?>> registeredSocketClasses
-
executor
private java.util.concurrent.Executor executor
-
objectFactory
private org.eclipse.jetty.util.DecoratedObjectFactory objectFactory
-
creator
private WebSocketCreator creator
-
-
Constructor Detail
-
WebSocketServerFactory
public WebSocketServerFactory()
Entry point for Spring Boot's MockMVC framework
-
WebSocketServerFactory
public WebSocketServerFactory(javax.servlet.ServletContext context)
-
WebSocketServerFactory
public WebSocketServerFactory(javax.servlet.ServletContext context, org.eclipse.jetty.io.ByteBufferPool bufferPool)
-
WebSocketServerFactory
public WebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy)Entry point forWebSocketServletFactory.Loader- Parameters:
context- the servlet contextpolicy- the policy to use
-
WebSocketServerFactory
public WebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy, org.eclipse.jetty.io.ByteBufferPool bufferPool)
-
WebSocketServerFactory
protected WebSocketServerFactory(WebSocketPolicy policy, java.util.concurrent.Executor executor, org.eclipse.jetty.io.ByteBufferPool bufferPool)
Protected entry point forWebSocketHandler- Parameters:
policy- the policy to useexecutor- the executor to usebufferPool- the buffer pool to use
-
WebSocketServerFactory
private WebSocketServerFactory(javax.servlet.ServletContext context, WebSocketPolicy policy, org.eclipse.jetty.util.DecoratedObjectFactory objectFactory, java.util.concurrent.Executor executor, org.eclipse.jetty.io.ByteBufferPool bufferPool)
-
-
Method Detail
-
addSessionListener
public void addSessionListener(WebSocketSessionListener listener)
- Specified by:
addSessionListenerin interfaceWebSocketContainerScope
-
removeSessionListener
public void removeSessionListener(WebSocketSessionListener listener)
- Specified by:
removeSessionListenerin interfaceWebSocketContainerScope
-
getSessionListeners
public java.util.Collection<WebSocketSessionListener> getSessionListeners()
- Specified by:
getSessionListenersin interfaceWebSocketContainerScope
-
acceptWebSocket
public boolean acceptWebSocket(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException- Specified by:
acceptWebSocketin interfaceWebSocketServletFactory- Throws:
java.io.IOException
-
acceptWebSocket
public boolean acceptWebSocket(WebSocketCreator creator, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException
- Specified by:
acceptWebSocketin interfaceWebSocketServletFactory- Throws:
java.io.IOException
-
addSessionFactory
public void addSessionFactory(SessionFactory sessionFactory)
-
createSession
private WebSocketSession createSession(java.net.URI requestURI, EventDriver websocket, LogicalConnection connection)
-
createWebSocket
public java.lang.Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp)
Default Creator logic- Specified by:
createWebSocketin interfaceWebSocketCreator- Parameters:
req- the request detailsresp- the response details- Returns:
- a websocket object to use, or null if no websocket should be created from this request.
-
doStart
protected void doStart() throws java.lang.Exception- Overrides:
doStartin classorg.eclipse.jetty.util.component.ContainerLifeCycle- Throws:
java.lang.Exception
-
doStop
protected void doStop() throws java.lang.Exception- Overrides:
doStopin classorg.eclipse.jetty.util.component.ContainerLifeCycle- Throws:
java.lang.Exception
-
findDecoratedObjectFactory
private org.eclipse.jetty.util.DecoratedObjectFactory findDecoratedObjectFactory()
Attempt to find the DecoratedObjectFactory that should be used.- Returns:
- the DecoratedObjectFactory that should be used. (never null)
-
findExecutor
private java.util.concurrent.Executor findExecutor()
Attempt to find the Executor that should be used.- Returns:
- the Executor that should be used. (never null)
-
getBufferPool
public org.eclipse.jetty.io.ByteBufferPool getBufferPool()
Description copied from interface:WebSocketContainerScopeThe configured Container Buffer Pool.- Specified by:
getBufferPoolin interfaceWebSocketContainerScope- Returns:
- the buffer pool (never null)
-
getCreator
public WebSocketCreator getCreator()
- Specified by:
getCreatorin interfaceWebSocketServletFactory
-
getExecutor
public java.util.concurrent.Executor getExecutor()
Description copied from interface:WebSocketContainerScopeExecutor in use by the container.- Specified by:
getExecutorin interfaceWebSocketContainerScope- Returns:
- the Executor in use by the container.
-
getObjectFactory
public org.eclipse.jetty.util.DecoratedObjectFactory getObjectFactory()
Description copied from interface:WebSocketContainerScopeObject Factory used to create objects.- Specified by:
getObjectFactoryin interfaceWebSocketContainerScope- Returns:
- Object Factory used to create instances of objects.
-
getEventDriverFactory
public EventDriverFactory getEventDriverFactory()
-
getAvailableExtensionNames
public java.util.Set<java.lang.String> getAvailableExtensionNames()
Description copied from interface:WebSocketServletFactoryGet the set of available Extensions by registered name.- Specified by:
getAvailableExtensionNamesin interfaceWebSocketServletFactory- Returns:
- the set of available extensions by registered name.
-
getExtensionFactory
@Deprecated public ExtensionFactory getExtensionFactory()
Deprecated.Description copied from interface:WebSocketServletFactoryGet the registered extensions for this WebSocket factory.- Specified by:
getExtensionFactoryin interfaceWebSocketServletFactory- Returns:
- the ExtensionFactory
- See Also:
WebSocketServletFactory.getAvailableExtensionNames()
-
getOpenSessions
public java.util.Collection<WebSocketSession> getOpenSessions()
-
getPolicy
public WebSocketPolicy getPolicy()
Description copied from interface:WebSocketContainerScopeThe policy the container is running on.- Specified by:
getPolicyin interfaceWebSocketContainerScope- Specified by:
getPolicyin interfaceWebSocketServletFactory- Returns:
- the websocket policy
-
getSslContextFactory
public org.eclipse.jetty.util.ssl.SslContextFactory getSslContextFactory()
Description copied from interface:WebSocketContainerScopeThe SslContextFactory in use by the container.- Specified by:
getSslContextFactoryin interfaceWebSocketContainerScope- Returns:
- the SslContextFactory in use by the container (can be null if no SSL context is defined)
-
isUpgradeRequest
public boolean isUpgradeRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)- Specified by:
isUpgradeRequestin interfaceWebSocketServletFactory
-
register
public void register(java.lang.Class<?> websocketPojo)
Description copied from interface:WebSocketServletFactoryRegister a websocket class pojo with the defaultWebSocketCreator.Note: only required if using the default
WebSocketCreatorprovided by this factory.- Specified by:
registerin interfaceWebSocketServletFactory- Parameters:
websocketPojo- the class to instantiate for each incoming websocket upgrade request.
-
setCreator
public void setCreator(WebSocketCreator creator)
- Specified by:
setCreatorin interfaceWebSocketServletFactory
-
upgrade
private boolean upgrade(org.eclipse.jetty.server.HttpConnection http, ServletUpgradeRequest request, ServletUpgradeResponse response, EventDriver driver) throws java.io.IOExceptionUpgrade the request/response to a WebSocket Connection. This method will not normally return, but will instead throw a UpgradeConnectionException, to exit HTTP handling and initiate WebSocket handling of the connection.- Parameters:
http- the raw http connectionrequest- The request to upgraderesponse- The response to upgradedriver- The websocket handler implementation to use- Throws:
java.io.IOException
-
getSendServerVersion
private boolean getSendServerVersion(org.eclipse.jetty.server.Connector connector)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classorg.eclipse.jetty.util.component.AbstractLifeCycle
-
-