Interface Session
- All Known Subinterfaces:
ISession
- All Known Implementing Classes:
HTTP2ClientSession
,HTTP2ServerSession
,HTTP2Session
A Session
represents the client-side endpoint of an HTTP/2 connection to a single origin server.
Once a Session
has been obtained, it can be used to open HTTP/2 streams:
Session session = ...; HeadersFrame frame = ...; Promise<Stream> promise = ... session.newStream(frame, promise, new Stream.Listener.Adapter() { public void onHeaders(Stream stream, HeadersFrame frame) { // Reply received } });
A Session
is the active part of the endpoint, and by calling its API applications can generate
events on the connection; conversely Session.Listener
is the passive part of the endpoint, and
has callbacks that are invoked when events happen on the connection.
- See Also:
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
ASession.Listener
is the passive counterpart of aSession
and receives events happening on an HTTP/2 connection. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Closes the session by sending a GOAWAY frame with the given error code and payload.Deprecated.default SocketAddress
Deprecated.usegetRemoteSocketAddress()
insteaddefault SocketAddress
getStream
(int streamId) Retrieves the stream with the givenstreamId
.boolean
isClosed()
default CompletableFuture<Stream>
newStream
(HeadersFrame frame, Stream.Listener listener) Sends the given HEADERSframe
to create a newStream
.void
newStream
(HeadersFrame frame, Promise<Stream> promise, Stream.Listener listener) Sends the given HEADERSframe
to create a newStream
.void
Sends the given PINGframe
.int
priority
(PriorityFrame frame, Callback callback) Sends the given PRIORITYframe
.void
settings
(SettingsFrame frame, Callback callback) Sends the given SETTINGSframe
to configure the session.
-
Method Details
-
newStream
Sends the given HEADERS
frame
to create a newStream
.- Parameters:
frame
- the HEADERS frame containing the HTTP headerslistener
- the listener that gets notified of stream events- Returns:
- a CompletableFuture that is notified of the stream creation
-
newStream
Sends the given HEADERS
frame
to create a newStream
.- Parameters:
frame
- the HEADERS frame containing the HTTP headerspromise
- the promise that gets notified of the stream creationlistener
- the listener that gets notified of stream events
-
priority
Sends the given PRIORITY
frame
.If the
frame
references astreamId
that does not exist (for example0
), then a newstreamId
will be allocated, to support unused anchor streams that act as parent for other streams.- Parameters:
frame
- the PRIORITY frame to sendcallback
- the callback that gets notified when the frame has been sent- Returns:
- the new stream id generated by the PRIORITY frame, or the stream id that it is already referencing
-
settings
Sends the given SETTINGS
frame
to configure the session.- Parameters:
frame
- the SETTINGS frame to sendcallback
- the callback that gets notified when the frame has been sent
-
ping
Sends the given PING
frame
.PING frames may be used to test the connection integrity and to measure round-trip time.
- Parameters:
frame
- the PING frame to sendcallback
- the callback that gets notified when the frame has been sent
-
close
Closes the session by sending a GOAWAY frame with the given error code and payload.
- Parameters:
error
- the error codepayload
- an optional payload (may be null)callback
- the callback that gets notified when the frame has been sent- Returns:
- true if the frame is being sent, false if the session was already closed
-
isClosed
boolean isClosed()- Returns:
- whether the session is not open
-
getStreams
Collection<Stream> getStreams()- Returns:
- a snapshot of all the streams currently belonging to this session
-
getStream
Retrieves the stream with the given
streamId
.- Parameters:
streamId
- the stream id of the stream looked for- Returns:
- the stream with the given id, or null if no such stream exist
-
getLocalAddress
Deprecated.usegetLocalSocketAddress()
instead- Returns:
- the local network address this session is bound to,
or
null
if this session is not bound to a network address
-
getLocalSocketAddress
- Returns:
- the local network address this session is bound to,
or
null
if this session is not bound to a network address
-
getRemoteAddress
Deprecated.usegetRemoteSocketAddress()
instead- Returns:
- the remote network address this session is connected to,
or
null
if this session is not connected to a network address
-
getRemoteSocketAddress
- Returns:
- the remote network address this session is connected to,
or
null
if this session is not connected to a network address
-
getLocalSocketAddress()
instead