io.vertx.core.http

## Interface HttpConnection

-     public interface HttpConnection

  Represents an HTTP connection.

  HTTP/1.x connection provides an limited implementation, the following methods are implemented:
  - `close()`
  - `closeHandler(io.vertx.core.Handler<java.lang.Void>)`
  - `exceptionHandler(io.vertx.core.Handler<java.lang.Throwable>)`
  Author:
    Julien Viet

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close the connection and all the currently active streams.
    `HttpConnection` | `closeHandler(Handler<Void> handler)` Set a close handler.
    `HttpConnection` | `exceptionHandler(Handler<Throwable> handler)` Set an handler called when a connection error happens
    `default int` | `getWindowSize()`
    `default HttpConnection` | `goAway(long errorCode)` Like `goAway(long, int)` with a last stream id `2^31-1`.
    `default HttpConnection` | `goAway(long errorCode, int lastStreamId)` Like `goAway(long, int, Buffer)` with no buffer.
    `HttpConnection` | `goAway(long errorCode, int lastStreamId, Buffer debugData)` Send a go away frame to the remote endpoint of the connection.
    `HttpConnection` | `goAwayHandler(Handler<GoAway> handler)` Set an handler called when a GOAWAY frame is received.
    `String` | `indicatedServerName()` Returns the SNI server name presented during the SSL handshake by the client.
    `boolean` | `isSsl()`
    `SocketAddress` | `localAddress()`
    `X509Certificate[]` | `peerCertificateChain()`
    `HttpConnection` | `ping(Buffer data, Handler<AsyncResult<Buffer>> pongHandler)` Send a PING frame to the remote endpoint.
    `HttpConnection` | `pingHandler(Handler<Buffer> handler)` Set an handler notified when a PING frame is received from the remote endpoint.
    `SocketAddress` | `remoteAddress()`
    `Http2Settings` | `remoteSettings()`
    `HttpConnection` | `remoteSettingsHandler(Handler<Http2Settings> handler)` Set an handler that is called when remote endpoint `Http2Settings` are updated.
    `Http2Settings` | `settings()`
    `default HttpConnection` | `setWindowSize(int windowSize)` Update the current connection wide window size to a new size.
    `HttpConnection` | `shutdown()` Initiate a connection shutdown, a go away frame is sent and the connection is closed when all current active streams are closed or after a time out of 30 seconds.
    `HttpConnection` | `shutdown(long timeoutMs)` Initiate a connection shutdown, a go away frame is sent and the connection is closed when all current streams will be closed or the `timeout` is fired.
    `HttpConnection` | `shutdownHandler(Handler<Void> handler)` Set an handler called when a GOAWAY frame has been sent or received and all connections are closed.
    `HttpConnection` | `updateSettings(Http2Settings settings)` Send to the remote endpoint an update of the server settings.
    `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.

- - ### 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 `2^31-1`.

    - #### goAway

          default HttpConnection goAway(long errorCode,
                                        int lastStreamId)

      Like `goAway(long, int, Buffer)` with no buffer.

    - #### 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 an handler called when a GOAWAY 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

          HttpConnection shutdown()

      Initiate a connection shutdown, a go away frame is sent and the connection is closed when all current active streams are closed or after a time out of 30 seconds.

      This is not implemented for HTTP/1.x.
      Returns:
        a reference to this, so the API can be used fluently

    - #### shutdown

          HttpConnection shutdown(long timeoutMs)

      Initiate a connection shutdown, a go away frame is sent and the connection is closed when all current streams will be closed or the `timeout` is fired.

      This is not implemented for HTTP/1.x.
      Parameters:
        `timeoutMs` - the timeout in milliseconds
      Returns:
        a reference to this, so the API can be used fluently

    - #### 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

          void close()

      Close the connection and all the currently active streams.

      An HTTP/2 connection will send a GOAWAY frame before.

    - #### settings

          Http2Settings settings()

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

    - #### updateSettings

          HttpConnection updateSettings(Http2Settings settings)

      Send to the remote endpoint an update of the server 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

    - #### updateSettings

          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

    - #### 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

          HttpConnection ping(Buffer data,
                              Handler<AsyncResult<Buffer>> pongHandler)

      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
        `pongHandler` - an async result handler notified with pong reply or the failure
      Returns:
        a reference to this, so the API can be used fluently

    - #### 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

    - #### localAddress

          SocketAddress localAddress()

      Returns:
        the remote address for this connection

    - #### isSsl

          boolean isSsl()

      Returns:
        true if this `HttpConnection` is encrypted via SSL/TLS.

    - #### peerCertificateChain

          X509Certificate[] peerCertificateChain()
                                          throws SSLPeerUnverifiedException

      Returns:
        an array of the peer certificates. Returns null if connection is not SSL.
      Throws:
        `SSLPeerUnverifiedException` - SSL peer's identity has not been verified.

    - #### indicatedServerName

          String indicatedServerName()

      Returns the SNI server name presented during the SSL handshake by the client.
      Returns:
        the indicated server name

Copyright © 2017. All rights reserved.