Class WebSocketClient

    • Constructor Detail

      • WebSocketClient

        public WebSocketClient()
        Instantiate a WebSocketClient with defaults.
      • WebSocketClient

        public WebSocketClient​(HttpClient httpClient)
        Instantiate a WebSocketClient using provided HttpClient.
        Parameters:
        httpClient - the HttpClient to use for WebSocketClient.
      • WebSocketClient

        public WebSocketClient​(HttpClient httpClient,
                               DecoratedObjectFactory decoratedObjectFactory)
        Instantiate a WebSocketClient using HttpClient for defaults
        Parameters:
        httpClient - the HttpClient that underlying WebSocket client uses
        decoratedObjectFactory - the DecoratedObjectFactory for all client instantiated classes
      • WebSocketClient

        @Deprecated
        public WebSocketClient​(java.util.concurrent.Executor executor)
        Deprecated.
        Create a new WebSocketClient
        Parameters:
        executor - the executor to use on the internal HttpClient
      • WebSocketClient

        @Deprecated
        public WebSocketClient​(SslContextFactory sslContextFactory,
                               java.util.concurrent.Executor executor)
        Deprecated.
        Create a new WebSocketClient
        Parameters:
        sslContextFactory - ssl context factory to use on the internal HttpClient
        executor - the executor to use on the internal HttpClient
      • WebSocketClient

        @Deprecated
        public WebSocketClient​(WebSocketContainerScope scope)
        Deprecated.
        Create WebSocketClient other Container Scope, to allow sharing of internal features like Executor, ByteBufferPool, SSLContextFactory, etc.
        Parameters:
        scope - the Container Scope
      • WebSocketClient

        @Deprecated
        public WebSocketClient​(SslContextFactory sslContextFactory,
                               java.util.concurrent.Executor executor,
                               ByteBufferPool bufferPool)
        Deprecated.
        Create WebSocketClient using sharing instances of SSLContextFactory Executor, and ByteBufferPool
        Parameters:
        sslContextFactory - shared SSL ContextFactory
        executor - shared Executor
        bufferPool - shared ByteBufferPool
      • WebSocketClient

        public WebSocketClient​(WebSocketContainerScope scope,
                               EventDriverFactory eventDriverFactory,
                               SessionFactory sessionFactory,
                               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 Scope
        eventDriverFactory - the EventDriver Factory to use
        sessionFactory - the SessionFactory to use
        httpClient - the httpClient to use
    • Method Detail

      • connect

        public java.util.concurrent.Future<Session> connect​(java.lang.Object websocket,
                                                            java.net.URI toUri)
                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • connect

        public java.util.concurrent.Future<Session> connect​(java.lang.Object websocket,
                                                            java.net.URI toUri,
                                                            ClientUpgradeRequest request)
                                                     throws java.io.IOException
        Connect to remote websocket endpoint
        Parameters:
        websocket - the websocket object
        toUri - the websocket uri to connect to
        request - 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<Session> connect​(java.lang.Object websocket,
                                                            java.net.URI toUri,
                                                            ClientUpgradeRequest request,
                                                            UpgradeListener upgradeListener)
                                                     throws java.io.IOException
        Connect to remote websocket endpoint
        Parameters:
        websocket - the websocket object
        toUri - the websocket uri to connect to
        request - the upgrade request information
        upgradeListener - the upgrade listener
        Returns:
        the future for the session, available on success of connect
        Throws:
        java.io.IOException - if unable to connect
      • getClassLoader

        public java.lang.ClassLoader getClassLoader()
        Description copied from interface: WebSocketContainerScope

        The ClassLoader used to load classes for the WebSocketSession.

        By default this will be the ContextClassLoader at the time this method is called. However this will be overridden by the WebSocketClient to use the ContextClassLoader at the time it was created, this is because the client uses its own ThreadPool so the WebSocketSessions may be created when the ContextClassLoader is not set.

        Specified by:
        getClassLoader in interface WebSocketContainerScope
        Returns:
        the classloader.
      • setEventDriverFactory

        public void setEventDriverFactory​(EventDriverFactory eventDriverFactory)
      • setSessionFactory

        public void setSessionFactory​(SessionFactory sessionFactory)
      • doStart

        protected void doStart()
                        throws java.lang.Exception
        Description copied from class: ContainerLifeCycle
        Starts the managed lifecycle beans in the order they were added.
        Overrides:
        doStart in class ContainerLifeCycle
        Throws:
        java.lang.Exception
      • doStop

        protected void doStop()
                       throws java.lang.Exception
        Description copied from class: ContainerLifeCycle
        Stops the managed lifecycle beans in the reverse order they were added.
        Overrides:
        doStop in class ContainerLifeCycle
        Throws:
        java.lang.Exception
      • isDispatchIO

        @Deprecated
        public boolean isDispatchIO()
        Deprecated.
      • getAsyncWriteTimeout

        @Deprecated
        public long getAsyncWriteTimeout()
        Deprecated.
        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()
      • getConnectionManager

        @Deprecated
        public ConnectionManager getConnectionManager()
        Deprecated.
      • getConnectTimeout

        public long getConnectTimeout()
      • getCookieStore

        public java.net.CookieStore getCookieStore()
      • getMasker

        @Deprecated
        public Masker getMasker()
        Deprecated.
        not used, no replacement
        Returns:
        a RandomMasker instance
      • 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.
      • getScheduler

        public Scheduler getScheduler()
      • newConnectionManager

        @Deprecated
        protected ConnectionManager newConnectionManager()
        Deprecated.
        has no replacement
        Factory method for new ConnectionManager
        Returns:
        the ConnectionManager instance to use
      • setAsyncWriteTimeout

        public void setAsyncWriteTimeout​(long ms)
      • setBindAddress

        public void setBindAddress​(java.net.SocketAddress bindAddress)
        Sets the Bind Address on the internal HttpClient.
        Parameters:
        bindAddress - the local bind address for the internal HttpClient
      • setBufferPool

        public void setBufferPool​(ByteBufferPool bufferPool)
        Set's the Bind Address on the internal HttpClient.
        Parameters:
        bufferPool - The buffer pool
      • setConnectTimeout

        public void setConnectTimeout​(long ms)
        Set the timeout for connecting to the remote server on the internal HttpClient
        Parameters:
        ms - the timeout in milliseconds
      • setCookieStore

        public void setCookieStore​(java.net.CookieStore cookieStore)
        Set the CookieStore to use on the internal 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.
        no longer used, this has no replacement
        Parameters:
        dispatchIO - true to have IO operations be dispatched to Executor
      • setExecutor

        public void setExecutor​(java.util.concurrent.Executor executor)
        Sets the Executor in use on the internal HttpClient
        Parameters:
        executor - The executor to use
      • setMasker

        @Deprecated
        public void setMasker​(Masker masker)
        Deprecated.
        not used, no replacement
        Parameters:
        masker - does 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 HttpClient getHttpClient()
        Get the internal HttpClient.

        Note: this can result in a LinkageError if used within a WebApp that runs on a server that also has HttpClient on the server classpath.

        Returns:
        the internal HttpClient
      • 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:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object