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
      • setEventDriverFactory

        public void setEventDriverFactory​(EventDriverFactory eventDriverFactory)
      • setSessionFactory

        public void setSessionFactory​(SessionFactory sessionFactory)
      • 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()
      • 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