Interface Stream
- All Known Subinterfaces:
IStream
- All Known Implementing Classes:
HTTP2Stream
A Stream
represents a bidirectional exchange of data on top of a Session
.
Differently from socket streams, where the input and output streams are permanently associated with the socket (and hence with the connection that the socket represents), there can be multiple HTTP/2 streams present concurrent for an HTTP/2 session.
A Stream
maps to an HTTP request/response cycle, and after the request/response cycle is
completed, the stream is closed and removed from the session.
Like Session
, Stream
is the active part and by calling its API applications
can generate events on the stream; conversely, Stream.Listener
is the passive part, and
its callbacks are invoked when events happen on the stream.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface
AStream.Listener
is the passive counterpart of aStream
and receives events happening on an HTTP/2 stream. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Sends the given DATAframe
.getAttribute
(String key) int
getId()
long
void
headers
(HeadersFrame frame, org.eclipse.jetty.util.Callback callback) Sends the given HEADERSframe
.boolean
isClosed()
boolean
isReset()
void
push
(PushPromiseFrame frame, org.eclipse.jetty.util.Promise<Stream> promise, Stream.Listener listener) Sends the given PUSH_PROMISEframe
.removeAttribute
(String key) void
reset
(ResetFrame frame, org.eclipse.jetty.util.Callback callback) Sends the given RST_STREAMframe
.void
setAttribute
(String key, Object value) void
setIdleTimeout
(long idleTimeout)
-
Method Details
-
getId
int getId()- Returns:
- the stream unique id
-
getSession
Session getSession()- Returns:
- the session this stream is associated to
-
headers
Sends the given HEADERS
frame
.Typically used to send an HTTP response or to send the HTTP response trailers.
- Parameters:
frame
- the HEADERS frame to sendcallback
- the callback that gets notified when the frame has been sent
-
push
void push(PushPromiseFrame frame, org.eclipse.jetty.util.Promise<Stream> promise, Stream.Listener listener) Sends the given PUSH_PROMISE
frame
.- Parameters:
frame
- the PUSH_PROMISE frame to sendpromise
- the promise that gets notified of the pushed stream creationlistener
- the listener that gets notified of stream events
-
data
Sends the given DATA
frame
.- Parameters:
frame
- the DATA frame to sendcallback
- the callback that gets notified when the frame has been sent
-
reset
Sends the given RST_STREAM
frame
.- Parameters:
frame
- the RST_FRAME to sendcallback
- the callback that gets notified when the frame has been sent
-
getAttribute
- Parameters:
key
- the attribute key- Returns:
- an arbitrary object associated with the given key to this stream or null if no object can be found for the given key.
- See Also:
-
setAttribute
- Parameters:
key
- the attribute keyvalue
- an arbitrary object to associate with the given key to this stream- See Also:
-
removeAttribute
- Parameters:
key
- the attribute key- Returns:
- the arbitrary object associated with the given key to this stream
- See Also:
-
isReset
boolean isReset()- Returns:
- whether this stream has been reset
-
isClosed
boolean isClosed()- Returns:
- whether this stream is closed, both locally and remotely.
-
getIdleTimeout
long getIdleTimeout()- Returns:
- the stream idle timeout
- See Also:
-
setIdleTimeout
void setIdleTimeout(long idleTimeout) - Parameters:
idleTimeout
- the stream idle timeout- See Also:
-