Interface HttpConnection

    • Method Detail

      • getWindowSize

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

        default 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

        default HttpConnection goAway​(long errorCode)
        Like goAway(long, int) with a last stream id -1 which means to disallow any new stream creation.
      • goAway

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

        • a GOAWAY 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 errorCode 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 GOAWAY 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

        HttpConnection goAwayHandler​(Handler<GoAway> handler)
        Set an handler called when a GOAWAY 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

        HttpConnection shutdownHandler​(Handler<Void> handler)
        Set a handler notified when the HTTP connection is shutdown: the client or server will close the connection within a certain amount of time. This gives the opportunity to the handler to close the current requests in progress gracefully before the HTTP connection is forcefully closed.
        Parameters:
        handler - the handler
        Returns:
        a reference to this, so the API can be used fluently
      • shutdown

        default Future<Void> shutdown()
        Shutdown with a 30 seconds timeout (shutdown(30, TimeUnit.SECONDS)).
        Returns:
        a future completed when shutdown has completed
      • shutdown

        Future<Void> shutdown​(long timeout,
                              TimeUnit unit)
        Initiate a graceful connection shutdown, the connection is taken out of service and closed when all the inflight requests are processed, otherwise after a timeout 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 connection will be closed.
        Parameters:
        timeout - the amount of time after which all resources are forcibly closed
        unit - the of the timeout
        Returns:
        a future completed when shutdown has completed
      • closeHandler

        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

        default Future<Void> close()
        Close immediately (shutdown(0, TimeUnit.SECONDS).
        Returns:
        a future notified when the client is closed
      • settings

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

        Future<Void> 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 future completed when the settings have been acknowledged by the remote endpoint
      • remoteSettings

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

        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

        Future<Buffer> ping​(Buffer data)
        Send a PING frame to the remote endpoint.

        This is not implemented for HTTP/1.x.

        Parameters:
        data - the 8 bytes data of the frame
        Returns:
        a future notified with the pong reply or the failure
      • pingHandler

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

        This is not implemented for HTTP/1.x.

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

        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

        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.
      • localAddress

        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

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

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

        SSLSession sslSession()
        Returns:
        SSLSession associated with the underlying socket. Returns null if connection is not SSL.
        See Also:
        SSLSession
      • indicatedServerName

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