Class HttpConnection

    • Constructor Detail

      • HttpConnection

        public HttpConnection​(Object delegate)
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • getWindowSize

        public int getWindowSize()
        Returns:
        the current connection window size or -1 for HTTP/1.x
      • setWindowSize

        public HttpConnection setWindowSize​(int windowSize)
        Update the current connection wide window size to a new size.

        Increasing this value, gives better performance when several data streams are multiplexed

        This is not implemented for HTTP/1.x.

        Parameters:
        windowSize - the new window size
        Returns:
        a reference to this, so the API can be used fluently
      • goAway

        public HttpConnection goAway​(long errorCode)
        Like goAway(long) with a last stream id -1 which means to disallow any new stream creation.
        Parameters:
        errorCode -
        Returns:
      • goAway

        public HttpConnection goAway​(long errorCode,
                                     int lastStreamId)
        Like goAway(long) with no buffer.
        Parameters:
        errorCode -
        lastStreamId -
        Returns:
      • goAway

        public HttpConnection goAway​(long errorCode,
                                     int lastStreamId,
                                     Buffer debugData)
        Send a go away frame to the remote endpoint of the connection.

        • a frame is sent to the to the remote endpoint with the errorCode and debugData
        • any stream created after the stream identified by lastStreamId will be closed
        • for an is different than 0 when all the remaining streams are closed this connection will be closed automatically

        This is not implemented for HTTP/1.x.

        Parameters:
        errorCode - the error code
        lastStreamId - the last stream id
        debugData - additional debug data sent to the remote endpoint
        Returns:
        a reference to this, so the API can be used fluently
      • goAwayHandler

        public HttpConnection goAwayHandler​(Handler<GoAway> handler)
        Set an handler called when a frame is received.

        This is not implemented for HTTP/1.x.

        Parameters:
        handler - the handler
        Returns:
        a reference to this, so the API can be used fluently
      • shutdownHandler

        public HttpConnection shutdownHandler​(Handler<Void> handler)
        Set an handler called when a frame has been sent or received and all connections are closed.

        This is not implemented for HTTP/1.x.

        Parameters:
        handler - the handler
        Returns:
        a reference to this, so the API can be used fluently
      • shutdown

        public void shutdown​(Handler<AsyncResult<Void>> handler)
        Initiate a graceful connection shutdown, the connection is taken out of service and closed when all current requests are processed, otherwise after 30 seconds the connection will be closed. Client connection are immediately removed from the pool.
        • HTTP/2 connections will send a go away frame immediately to signal the other side the connection will close
        • HTTP/1.x client connection supports this feature
        • HTTP/1.x server connections do not support this feature
        Parameters:
        handler - the handler called when shutdown has completed
      • shutdown

        public void shutdown()
        Initiate a graceful connection shutdown, the connection is taken out of service and closed when all current requests are processed, otherwise after 30 seconds the connection will be closed. Client connection are immediately removed from the pool.
        • HTTP/2 connections will send a go away frame immediately to signal the other side the connection will close
        • HTTP/1.x client connection supports this feature
        • HTTP/1.x server connections do not support this feature
      • rxShutdown

        public io.reactivex.Completable rxShutdown()
        Initiate a graceful connection shutdown, the connection is taken out of service and closed when all current requests are processed, otherwise after 30 seconds the connection will be closed. Client connection are immediately removed from the pool.
        • HTTP/2 connections will send a go away frame immediately to signal the other side the connection will close
        • HTTP/1.x client connection supports this feature
        • HTTP/1.x server connections do not support this feature
        Returns:
      • closeHandler

        public HttpConnection closeHandler​(Handler<Void> handler)
        Set a close handler. The handler will get notified when the connection is closed.
        Parameters:
        handler - the handler to be notified
        Returns:
        a reference to this, so the API can be used fluently
      • close

        public void close​(Handler<AsyncResult<Void>> handler)
        Close the connection and all the currently active streams.

        An HTTP/2 connection will send a frame before.

        Parameters:
        handler - the handler to be completed when the connection is closed
      • close

        public void close()
        Close the connection and all the currently active streams.

        An HTTP/2 connection will send a frame before.

      • rxClose

        public io.reactivex.Completable rxClose()
        Close the connection and all the currently active streams.

        An HTTP/2 connection will send a frame before.

        Returns:
      • settings

        public Http2Settings settings()
        Returns:
        the latest server settings acknowledged by the remote endpoint - this is not implemented for HTTP/1.x
      • updateSettings

        public HttpConnection updateSettings​(Http2Settings settings,
                                             Handler<AsyncResult<Void>> completionHandler)
        Send to the remote endpoint an update of this endpoint settings

        The completionHandler will be notified when the remote endpoint has acknowledged the settings.

        This is not implemented for HTTP/1.x.

        Parameters:
        settings - the new settings
        completionHandler - the handler notified when the settings have been acknowledged by the remote endpoint
        Returns:
        a reference to this, so the API can be used fluently
      • updateSettings

        public HttpConnection updateSettings​(Http2Settings settings)
        Send to the remote endpoint an update of this endpoint settings

        The completionHandler will be notified when the remote endpoint has acknowledged the settings.

        This is not implemented for HTTP/1.x.

        Parameters:
        settings - the new settings
        Returns:
        a reference to this, so the API can be used fluently
      • rxUpdateSettings

        public io.reactivex.Completable rxUpdateSettings​(Http2Settings settings)
        Send to the remote endpoint an update of this endpoint settings

        The completionHandler will be notified when the remote endpoint has acknowledged the settings.

        This is not implemented for HTTP/1.x.

        Parameters:
        settings - the new settings
        Returns:
        a reference to this, so the API can be used fluently
      • remoteSettings

        public Http2Settings remoteSettings()
        Returns:
        the current remote endpoint settings for this connection - this is not implemented for HTTP/1.x
      • remoteSettingsHandler

        public HttpConnection remoteSettingsHandler​(Handler<Http2Settings> handler)
        Set an handler that is called when remote endpoint Http2Settings are updated.

        This is not implemented for HTTP/1.x.

        Parameters:
        handler - the handler for remote endpoint settings
        Returns:
        a reference to this, so the API can be used fluently
      • ping

        public HttpConnection ping​(Buffer data,
                                   Handler<AsyncResult<Buffer>> pongHandler)
        Send a frame to the remote endpoint.

        This is not implemented for HTTP/1.x.

        Parameters:
        data - the 8 bytes data of the frame
        pongHandler - an async result handler notified with pong reply or the failure
        Returns:
        a reference to this, so the API can be used fluently
      • ping

        public HttpConnection ping​(Buffer data)
        Send a frame to the remote endpoint.

        This is not implemented for HTTP/1.x.

        Parameters:
        data - the 8 bytes data of the frame
        Returns:
        a reference to this, so the API can be used fluently
      • rxPing

        public io.reactivex.Single<Buffer> rxPing​(Buffer data)
        Send a frame to the remote endpoint.

        This is not implemented for HTTP/1.x.

        Parameters:
        data - the 8 bytes data of the frame
        Returns:
        a reference to this, so the API can be used fluently
      • pingHandler

        public HttpConnection pingHandler​(Handler<Buffer> handler)
        Set an handler notified when a frame is received from the remote endpoint.

        This is not implemented for HTTP/1.x.

        Parameters:
        handler - the handler to be called when a is received
        Returns:
        a reference to this, so the API can be used fluently
      • exceptionHandler

        public HttpConnection exceptionHandler​(Handler<Throwable> handler)
        Set an handler called when a connection error happens
        Parameters:
        handler - the handler
        Returns:
        a reference to this, so the API can be used fluently
      • remoteAddress

        public SocketAddress remoteAddress()
        Returns:
        the remote address for this connection, possibly null (e.g a server bound on a domain socket). If useProxyProtocol is set to true, the address returned will be of the actual connecting client.
      • remoteAddress

        public SocketAddress remoteAddress​(boolean real)
        Like remoteAddress() but returns the proxy remote address when real is true
        Parameters:
        real -
        Returns:
      • localAddress

        public SocketAddress localAddress()
        Returns:
        the local address for this connection, possibly null (e.g a server bound on a domain socket) If useProxyProtocol is set to true, the address returned will be of the proxy.
      • localAddress

        public SocketAddress localAddress​(boolean real)
        Like localAddress() ()} but returns the server local address when real is true
        Parameters:
        real -
        Returns:
      • isSsl

        public boolean isSsl()
        Returns:
        true if this HttpConnection is encrypted via SSL/TLS.
      • indicatedServerName

        public String indicatedServerName()
        Returns the SNI server name presented during the SSL handshake by the client.
        Returns:
        the indicated server name
      • sslSession

        public SSLSession sslSession()
        Returns:
        SSLSession associated with the underlying socket. Returns null if connection is not SSL.