Class WebSocketClient
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.websocket.client.WebSocketClient
-
- 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.LifeCycle,org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope,org.eclipse.jetty.websocket.common.WebSocketSessionListener
public class WebSocketClient extends org.eclipse.jetty.util.component.ContainerLifeCycle implements org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope, org.eclipse.jetty.websocket.common.WebSocketSessionListenerWebSocketClient provides a means of establishing connections to remote websocket endpoints.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
-
-
Constructor Summary
Constructors Constructor Description WebSocketClient()Instantiate a WebSocketClient with defaultsWebSocketClient(java.util.concurrent.Executor executor)Deprecated.useWebSocketClient(HttpClient)insteadWebSocketClient(org.eclipse.jetty.client.HttpClient httpClient)Instantiate a WebSocketClient using HttpClient for defaultsWebSocketClient(org.eclipse.jetty.client.HttpClient httpClient, org.eclipse.jetty.util.DecoratedObjectFactory objectFactory)Instantiate a WebSocketClient using HttpClient for defaultsWebSocketClient(org.eclipse.jetty.io.ByteBufferPool bufferPool)Deprecated.useWebSocketClient(HttpClient)insteadWebSocketClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)Deprecated.useWebSocketClient(HttpClient)insteadWebSocketClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory, java.util.concurrent.Executor executor)Deprecated.useWebSocketClient(HttpClient)insteadWebSocketClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory, java.util.concurrent.Executor executor, org.eclipse.jetty.io.ByteBufferPool bufferPool)Create WebSocketClient using sharing instances of SSLContextFactory Executor, and ByteBufferPoolWebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope)Create WebSocketClient other Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.WebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope, org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)Create WebSocketClient other Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.WebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope, org.eclipse.jetty.websocket.common.events.EventDriverFactory eventDriverFactory, org.eclipse.jetty.websocket.common.SessionFactory sessionFactory)Create WebSocketClient based on pre-existing Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.WebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope, org.eclipse.jetty.websocket.common.events.EventDriverFactory eventDriverFactory, org.eclipse.jetty.websocket.common.SessionFactory sessionFactory, org.eclipse.jetty.client.HttpClient httpClient)Create WebSocketClient based on pre-existing Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddSessionListener(org.eclipse.jetty.websocket.common.WebSocketSessionListener listener)java.util.concurrent.Future<org.eclipse.jetty.websocket.api.Session>connect(java.lang.Object websocket, java.net.URI toUri)java.util.concurrent.Future<org.eclipse.jetty.websocket.api.Session>connect(java.lang.Object websocket, java.net.URI toUri, ClientUpgradeRequest request)Connect to remote websocket endpointjava.util.concurrent.Future<org.eclipse.jetty.websocket.api.Session>connect(java.lang.Object websocket, java.net.URI toUri, ClientUpgradeRequest request, UpgradeListener upgradeListener)Connect to remote websocket endpointprotected voiddoStart()protected voiddoStop()booleanequals(java.lang.Object o)longgetAsyncWriteTimeout()Return the number of milliseconds for a timeout of an attempted write operation.java.net.SocketAddressgetBindAddress()org.eclipse.jetty.io.ByteBufferPoolgetBufferPool()ConnectionManagergetConnectionManager()Deprecated.longgetConnectTimeout()java.net.CookieStoregetCookieStore()org.eclipse.jetty.websocket.common.events.EventDriverFactorygetEventDriverFactory()java.util.concurrent.ExecutorgetExecutor()org.eclipse.jetty.websocket.api.extensions.ExtensionFactorygetExtensionFactory()org.eclipse.jetty.client.HttpClientgetHttpClient()MaskergetMasker()Deprecated.not used, no replacementintgetMaxBinaryMessageBufferSize()Get the maximum size for buffering of a binary message.longgetMaxBinaryMessageSize()Get the maximum size for a binary message.longgetMaxIdleTimeout()Get the max idle timeout for new connections.intgetMaxTextMessageBufferSize()Get the maximum size for buffering of a text message.longgetMaxTextMessageSize()Get the maximum size for a text message.org.eclipse.jetty.util.DecoratedObjectFactorygetObjectFactory()java.util.Set<org.eclipse.jetty.websocket.common.WebSocketSession>getOpenSessions()org.eclipse.jetty.websocket.api.WebSocketPolicygetPolicy()org.eclipse.jetty.util.thread.SchedulergetScheduler()org.eclipse.jetty.websocket.common.SessionFactorygetSessionFactory()java.util.Collection<org.eclipse.jetty.websocket.common.WebSocketSessionListener>getSessionListeners()org.eclipse.jetty.util.ssl.SslContextFactorygetSslContextFactory()inthashCode()booleanisDispatchIO()Deprecated.booleanisStopAtShutdown()protected ConnectionManagernewConnectionManager()Deprecated.use HttpClient insteadvoidonSessionClosed(org.eclipse.jetty.websocket.common.WebSocketSession session)voidonSessionOpened(org.eclipse.jetty.websocket.common.WebSocketSession session)voidremoveSessionListener(org.eclipse.jetty.websocket.common.WebSocketSessionListener listener)voidsetAsyncWriteTimeout(long ms)voidsetBindAdddress(java.net.SocketAddress bindAddress)Deprecated.(this is a bad bad bad typo) useHttpClient.setBindAddress(SocketAddress)on instance passed toWebSocketClient(HttpClient)voidsetBindAddress(java.net.SocketAddress bindAddress)Deprecated.UseHttpClient.setBindAddress(SocketAddress)on instance passed toWebSocketClient(HttpClient)voidsetBufferPool(org.eclipse.jetty.io.ByteBufferPool bufferPool)Deprecated.UseHttpClient.setByteBufferPool(ByteBufferPool)on the instance passed toWebSocketClient(HttpClient)voidsetConnectTimeout(long ms)Deprecated.UseHttpClient.setConnectTimeout(long)on the instance passed toWebSocketClient(HttpClient)voidsetCookieStore(java.net.CookieStore cookieStore)Deprecated.UseHttpClient.setCookieStore(CookieStore)on the HttpClient instance passed toWebSocketClient(HttpClient)voidsetDaemon(boolean daemon)Deprecated.not used, configure threading in HttpClient insteadvoidsetDispatchIO(boolean dispatchIO)Deprecated.voidsetExecutor(java.util.concurrent.Executor executor)Deprecated.UseHttpClient.setExecutor(Executor)on the instance passed toWebSocketClient(HttpClient)voidsetMasker(Masker masker)Deprecated.not used, no replacementvoidsetMaxBinaryMessageBufferSize(int max)voidsetMaxIdleTimeout(long ms)Set the max idle timeout for new connections.voidsetMaxTextMessageBufferSize(int max)voidsetStopAtShutdown(boolean stop)Set JVM shutdown behavior.java.lang.StringtoString()-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, 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
-
-
-
-
Constructor Detail
-
WebSocketClient
public WebSocketClient()
Instantiate a WebSocketClient with defaults
-
WebSocketClient
public WebSocketClient(org.eclipse.jetty.client.HttpClient httpClient)
Instantiate a WebSocketClient using HttpClient for defaults- Parameters:
httpClient- the HttpClient to base internal defaults off of
-
WebSocketClient
public WebSocketClient(org.eclipse.jetty.client.HttpClient httpClient, org.eclipse.jetty.util.DecoratedObjectFactory objectFactory)Instantiate a WebSocketClient using HttpClient for defaults- Parameters:
httpClient- the HttpClient to base internal defaults off ofobjectFactory- the DecoratedObjectFactory for all client instantiated classes
-
WebSocketClient
@Deprecated public WebSocketClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)
Deprecated.useWebSocketClient(HttpClient)insteadCreate a new WebSocketClient- Parameters:
sslContextFactory- ssl context factory to use
-
WebSocketClient
public WebSocketClient(java.util.concurrent.Executor executor)
Deprecated.useWebSocketClient(HttpClient)insteadCreate a new WebSocketClient- Parameters:
executor- the executor to use
-
WebSocketClient
@Deprecated public WebSocketClient(org.eclipse.jetty.io.ByteBufferPool bufferPool)
Deprecated.useWebSocketClient(HttpClient)insteadCreate a new WebSocketClient- Parameters:
bufferPool- byte buffer pool to use
-
WebSocketClient
@Deprecated public WebSocketClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory, java.util.concurrent.Executor executor)Deprecated.useWebSocketClient(HttpClient)insteadCreate a new WebSocketClient- Parameters:
sslContextFactory- ssl context factory to useexecutor- the executor to use
-
WebSocketClient
public WebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope)
Create WebSocketClient other Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.- Parameters:
scope- the Container Scope
-
WebSocketClient
public WebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope, org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory)Create WebSocketClient other Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.- Parameters:
scope- the Container ScopesslContextFactory- SSL ContextFactory to use in preference to one fromWebSocketContainerScope.getSslContextFactory()
-
WebSocketClient
public WebSocketClient(org.eclipse.jetty.util.ssl.SslContextFactory sslContextFactory, java.util.concurrent.Executor executor, org.eclipse.jetty.io.ByteBufferPool bufferPool)Create WebSocketClient using sharing instances of SSLContextFactory Executor, and ByteBufferPool- Parameters:
sslContextFactory- shared SSL ContextFactoryexecutor- shared ExecutorbufferPool- shared ByteBufferPool
-
WebSocketClient
public WebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope, org.eclipse.jetty.websocket.common.events.EventDriverFactory eventDriverFactory, org.eclipse.jetty.websocket.common.SessionFactory sessionFactory)Create WebSocketClient based on pre-existing Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.- Parameters:
scope- the Container ScopeeventDriverFactory- the EventDriver Factory to usesessionFactory- the SessionFactory to use
-
WebSocketClient
public WebSocketClient(org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope scope, org.eclipse.jetty.websocket.common.events.EventDriverFactory eventDriverFactory, org.eclipse.jetty.websocket.common.SessionFactory sessionFactory, org.eclipse.jetty.client.HttpClient httpClient)Create WebSocketClient based on pre-existing Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.- Parameters:
scope- the Container ScopeeventDriverFactory- the EventDriver Factory to usesessionFactory- the SessionFactory to usehttpClient- the httpClient to use
-
-
Method Detail
-
connect
public java.util.concurrent.Future<org.eclipse.jetty.websocket.api.Session> connect(java.lang.Object websocket, java.net.URI toUri) throws java.io.IOException- Throws:
java.io.IOException
-
connect
public java.util.concurrent.Future<org.eclipse.jetty.websocket.api.Session> connect(java.lang.Object websocket, java.net.URI toUri, ClientUpgradeRequest request) throws java.io.IOExceptionConnect to remote websocket endpoint- Parameters:
websocket- the websocket objecttoUri- the websocket uri to connect torequest- the upgrade request information- Returns:
- the future for the session, available on success of connect
- Throws:
java.io.IOException- if unable to connect
-
connect
public java.util.concurrent.Future<org.eclipse.jetty.websocket.api.Session> connect(java.lang.Object websocket, java.net.URI toUri, ClientUpgradeRequest request, UpgradeListener upgradeListener) throws java.io.IOExceptionConnect to remote websocket endpoint- Parameters:
websocket- the websocket objecttoUri- the websocket uri to connect torequest- the upgrade request informationupgradeListener- the upgrade listener- Returns:
- the future for the session, available on success of connect
- Throws:
java.io.IOException- if unable to connect
-
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
-
isDispatchIO
@Deprecated public boolean isDispatchIO()
Deprecated.
-
getAsyncWriteTimeout
public long getAsyncWriteTimeout()
Return the number of milliseconds for a timeout of an attempted write operation.- Returns:
- number of milliseconds for timeout of an attempted write operation
-
getBindAddress
public java.net.SocketAddress getBindAddress()
-
getBufferPool
public org.eclipse.jetty.io.ByteBufferPool getBufferPool()
- Specified by:
getBufferPoolin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
-
getConnectionManager
@Deprecated public ConnectionManager getConnectionManager()
Deprecated.
-
getConnectTimeout
public long getConnectTimeout()
-
getCookieStore
public java.net.CookieStore getCookieStore()
-
getEventDriverFactory
public org.eclipse.jetty.websocket.common.events.EventDriverFactory getEventDriverFactory()
-
getExecutor
public java.util.concurrent.Executor getExecutor()
- Specified by:
getExecutorin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
-
getExtensionFactory
public org.eclipse.jetty.websocket.api.extensions.ExtensionFactory getExtensionFactory()
-
getMasker
@Deprecated public Masker getMasker()
Deprecated.not used, no replacement- Returns:
- a
RandomMaskerinstance
-
getMaxBinaryMessageBufferSize
public int getMaxBinaryMessageBufferSize()
Get the maximum size for buffering of a binary message.- Returns:
- the maximum size of a binary message buffer.
-
getMaxBinaryMessageSize
public long getMaxBinaryMessageSize()
Get the maximum size for a binary message.- Returns:
- the maximum size of a binary message.
-
getMaxIdleTimeout
public long getMaxIdleTimeout()
Get the max idle timeout for new connections.- Returns:
- the max idle timeout in milliseconds for new connections.
-
getMaxTextMessageBufferSize
public int getMaxTextMessageBufferSize()
Get the maximum size for buffering of a text message.- Returns:
- the maximum size of a text message buffer.
-
getMaxTextMessageSize
public long getMaxTextMessageSize()
Get the maximum size for a text message.- Returns:
- the maximum size of a text message.
-
getObjectFactory
public org.eclipse.jetty.util.DecoratedObjectFactory getObjectFactory()
- Specified by:
getObjectFactoryin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
-
getOpenSessions
public java.util.Set<org.eclipse.jetty.websocket.common.WebSocketSession> getOpenSessions()
-
getPolicy
public org.eclipse.jetty.websocket.api.WebSocketPolicy getPolicy()
- Specified by:
getPolicyin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
-
getScheduler
public org.eclipse.jetty.util.thread.Scheduler getScheduler()
-
getSessionFactory
public org.eclipse.jetty.websocket.common.SessionFactory getSessionFactory()
-
getSslContextFactory
public org.eclipse.jetty.util.ssl.SslContextFactory getSslContextFactory()
- Specified by:
getSslContextFactoryin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope- Returns:
- the
SslContextFactorythat manages TLS encryption - See Also:
WebSocketClient(SslContextFactory)
-
addSessionListener
public void addSessionListener(org.eclipse.jetty.websocket.common.WebSocketSessionListener listener)
- Specified by:
addSessionListenerin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
-
removeSessionListener
public void removeSessionListener(org.eclipse.jetty.websocket.common.WebSocketSessionListener listener)
- Specified by:
removeSessionListenerin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
-
getSessionListeners
public java.util.Collection<org.eclipse.jetty.websocket.common.WebSocketSessionListener> getSessionListeners()
- Specified by:
getSessionListenersin interfaceorg.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope
-
newConnectionManager
@Deprecated protected ConnectionManager newConnectionManager()
Deprecated.use HttpClient insteadFactory method for new ConnectionManager- Returns:
- the ConnectionManager instance to use
-
onSessionClosed
public void onSessionClosed(org.eclipse.jetty.websocket.common.WebSocketSession session)
- Specified by:
onSessionClosedin interfaceorg.eclipse.jetty.websocket.common.WebSocketSessionListener
-
onSessionOpened
public void onSessionOpened(org.eclipse.jetty.websocket.common.WebSocketSession session)
- Specified by:
onSessionOpenedin interfaceorg.eclipse.jetty.websocket.common.WebSocketSessionListener
-
setAsyncWriteTimeout
public void setAsyncWriteTimeout(long ms)
-
setBindAdddress
@Deprecated public void setBindAdddress(java.net.SocketAddress bindAddress)
Deprecated.(this is a bad bad bad typo) useHttpClient.setBindAddress(SocketAddress)on instance passed toWebSocketClient(HttpClient)- Parameters:
bindAddress- the address to bind to
-
setBindAddress
@Deprecated public void setBindAddress(java.net.SocketAddress bindAddress)
Deprecated.UseHttpClient.setBindAddress(SocketAddress)on instance passed toWebSocketClient(HttpClient)- Parameters:
bindAddress- the address to bind to
-
setBufferPool
public void setBufferPool(org.eclipse.jetty.io.ByteBufferPool bufferPool)
Deprecated.UseHttpClient.setByteBufferPool(ByteBufferPool)on the instance passed toWebSocketClient(HttpClient)- Parameters:
bufferPool- The buffer pool
-
setConnectTimeout
public void setConnectTimeout(long ms)
Deprecated.UseHttpClient.setConnectTimeout(long)on the instance passed toWebSocketClient(HttpClient)Set the timeout for connecting to the remote server.- Parameters:
ms- the timeout in millisecondspool
-
setCookieStore
@Deprecated public void setCookieStore(java.net.CookieStore cookieStore)
Deprecated.UseHttpClient.setCookieStore(CookieStore)on the HttpClient instance passed toWebSocketClient(HttpClient)- Parameters:
cookieStore- The cookie store
-
setDaemon
@Deprecated public void setDaemon(boolean daemon)
Deprecated.not used, configure threading in HttpClient instead- Parameters:
daemon- do nothing
-
setDispatchIO
@Deprecated public void setDispatchIO(boolean dispatchIO)
Deprecated.
-
setExecutor
@Deprecated public void setExecutor(java.util.concurrent.Executor executor)
Deprecated.UseHttpClient.setExecutor(Executor)on the instance passed toWebSocketClient(HttpClient)- Parameters:
executor- The executor to use
-
setMasker
@Deprecated public void setMasker(Masker masker)
Deprecated.not used, no replacement- Parameters:
masker- do nothing
-
setMaxBinaryMessageBufferSize
public void setMaxBinaryMessageBufferSize(int max)
-
setMaxIdleTimeout
public void setMaxIdleTimeout(long ms)
Set the max idle timeout for new connections.Existing connections will not have their max idle timeout adjusted.
- Parameters:
ms- the timeout in milliseconds
-
setMaxTextMessageBufferSize
public void setMaxTextMessageBufferSize(int max)
-
getHttpClient
public org.eclipse.jetty.client.HttpClient getHttpClient()
-
setStopAtShutdown
public void setStopAtShutdown(boolean stop)
Set JVM shutdown behavior.- Parameters:
stop- If true, this client instance will be explicitly stopped when the JVM is shutdown. Otherwise the application is responsible for maintaining the WebSocketClient lifecycle.- See Also:
Runtime.addShutdownHook(Thread),ShutdownThread
-
isStopAtShutdown
public boolean isStopAtShutdown()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classorg.eclipse.jetty.util.component.AbstractLifeCycle
-
-