Interface Session

All Known Subinterfaces:
ISession
All Known Implementing Classes:
HTTP2ClientSession, HTTP2ServerSession, HTTP2Session

public interface Session

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:
  • Method Details

    • newStream

      default CompletableFuture<Stream> newStream(HeadersFrame frame, Stream.Listener listener)

      Sends the given HEADERS frame to create a new Stream.

      Parameters:
      frame - the HEADERS frame containing the HTTP headers
      listener - the listener that gets notified of stream events
      Returns:
      a CompletableFuture that is notified of the stream creation
    • newStream

      void newStream(HeadersFrame frame, Promise<Stream> promise, Stream.Listener listener)

      Sends the given HEADERS frame to create a new Stream.

      Parameters:
      frame - the HEADERS frame containing the HTTP headers
      promise - the promise that gets notified of the stream creation
      listener - the listener that gets notified of stream events
    • priority

      int priority(PriorityFrame frame, Callback callback)

      Sends the given PRIORITY frame.

      If the frame references a streamId that does not exist (for example 0), then a new streamId will be allocated, to support unused anchor streams that act as parent for other streams.

      Parameters:
      frame - the PRIORITY frame to send
      callback - 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

      void settings(SettingsFrame frame, Callback callback)

      Sends the given SETTINGS frame to configure the session.

      Parameters:
      frame - the SETTINGS frame to send
      callback - the callback that gets notified when the frame has been sent
    • ping

      void ping(PingFrame frame, Callback callback)

      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 send
      callback - the callback that gets notified when the frame has been sent
    • close

      boolean close(int error, String payload, Callback callback)

      Closes the session by sending a GOAWAY frame with the given error code and payload.

      Parameters:
      error - the error code
      payload - 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

      Stream getStream(int streamId)

      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 InetSocketAddress getLocalAddress()
      Deprecated.
      Returns:
      the local network address this session is bound to, or null if this session is not bound to a network address
    • getLocalSocketAddress

      default SocketAddress 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 InetSocketAddress getRemoteAddress()
      Deprecated.
      Returns:
      the remote network address this session is connected to, or null if this session is not connected to a network address
    • getRemoteSocketAddress

      default SocketAddress getRemoteSocketAddress()
      Returns:
      the remote network address this session is connected to, or null if this session is not connected to a network address