Interface HttpConnection
- All Known Subinterfaces:
HttpClientConnection
public interface HttpConnection
Represents an HTTP connection.
HTTP/1.x connection provides a limited implementation, the following methods are implemented:
- Author:
- Julien Viet
-
Method Summary
Modifier and TypeMethodDescriptionclose()Close immediately (shutdown(0, TimeUnit.SECONDS).closeHandler(Handler<Void> handler) Set a close handler.exceptionHandler(Handler<Throwable> handler) Set an handler called when a connection error happensdefault intdefault HttpConnectiongoAway(long errorCode) Deprecated.default HttpConnectiongoAway(long errorCode, int lastStreamId) Deprecated.instead useshutdown()Deprecated.instead useshutdown()goAwayHandler(Handler<GoAway> handler) Set an handler called when a GOAWAY frame is received.Returns the SNI server name presented during the SSL handshake by the client.booleanisSsl()localAddress(boolean real) default List<Certificate> Send a PING frame to the remote endpoint.pingHandler(Handler<Buffer> handler) Set an handler notified when a PING frame is received from the remote endpoint.remoteAddress(boolean real) remoteSettingsHandler(Handler<HttpSettings> handler) Set an handler that is called when remote endpointHttpSettingsare updated.settings()default HttpConnectionsetWindowSize(int windowSize) Update the current connection wide window size to a new size.shutdown()Shutdown with a 30 seconds timeout (shutdown(30, TimeUnit.SECONDS)).Callsshutdown(Duration)Initiate a graceful connection shutdown, the connection is taken out of service and closed when all the inflight requests are processed, otherwise after atimeoutthe connection will be closed.shutdownHandler(Handler<Void> handler) Set ahandlernotified when the HTTP connection is shutdown: the client or server will close the connection within a certain amount of time.updateSettings(HttpSettings settings) Send to the remote endpoint an update of this endpoint settings
-
Method Details
-
protocolVersion
HttpVersion protocolVersion()- Returns:
- the version of the protocol of this connection
-
getWindowSize
default int getWindowSize()- Returns:
- the current connection window size or
-1for HTTP/1.x
-
setWindowSize
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
Deprecated.instead useshutdown()LikegoAway(long, int)with a last stream id-1which means to disallow any new stream creation. -
goAway
Deprecated.instead useshutdown()LikegoAway(long, int, Buffer)with no buffer. -
goAway
Deprecated.instead useshutdown()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
errorCodeanddebugData - any stream created after the stream identified by
lastStreamIdwill be closed - for an errorCode is different than
0when all the remaining streams are closed this connection will be closed automatically
- Parameters:
errorCode- the GOAWAY error codelastStreamId- the last stream iddebugData- additional debug data sent to the remote endpoint- Returns:
- a reference to this, so the API can be used fluently
- a GOAWAY frame is sent to the to the remote endpoint with the
-
goAwayHandler
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
Set ahandlernotified 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 thehandlerto 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
-
shutdown
Callsshutdown(Duration) -
shutdown
Initiate a graceful connection shutdown, the connection is taken out of service and closed when all the inflight requests are processed, otherwise after atimeoutthe 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- Returns:
- a future completed when shutdown has completed
-
closeHandler
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
-
settings
HttpSettings settings()- Returns:
- the latest server settings acknowledged by the remote endpoint - this is not implemented for HTTP/1.x
-
updateSettings
Send to the remote endpoint an update of this endpoint settings ThecompletionHandlerwill 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
HttpSettings remoteSettings()- Returns:
- the current remote endpoint settings for this connection - this is not implemented for HTTP/1.x
-
remoteSettingsHandler
Set an handler that is called when remote endpointHttpSettingsare 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
-
pingHandler
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
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). IfuseProxyProtocolis set totrue, the address returned will be of the actual connecting client.
-
remoteAddress
-
localAddress
SocketAddress localAddress()- Returns:
- the local address for this connection, possibly
null(e.g a server bound on a domain socket) IfuseProxyProtocolis set totrue, the address returned will be of the proxy.
-
localAddress
-
isSsl
boolean isSsl()- Returns:
- true if this
HttpConnectionis encrypted via SSL/TLS.
-
sslSession
SSLSession sslSession()- Returns:
- SSLSession associated with the underlying socket. Returns null if connection is not SSL.
- See Also:
-
peerCertificates
- Returns:
- an ordered list of the peer certificates. Returns null if connection is not SSL.
- Throws:
SSLPeerUnverifiedException- SSL peer's identity has not been verified.- See Also:
-
indicatedServerName
String indicatedServerName()Returns the SNI server name presented during the SSL handshake by the client.- Returns:
- the indicated server name
-
proxyProtocolV2HeaderTLVs
-
shutdown()