Creates substreams for every stream and manages stream state machines and handles priorization (TODO: later)
Returns a flow that handles parallelism
requests in parallel, automatically keeping track of the
Http2StreamIdHeader between request and responses.
Runs hpack encoding and decoding.
Runs hpack encoding and decoding. Incoming frames that are processed are HEADERS and CONTINUATION. Outgoing frame is ParsedHeadersFrame. Other frames are propagated unchanged.
TODO: introduce another FrameEvent type that exclude HeadersFrame and ContinuationFrame from reaching the higher-level.
Translation between substream frames and Http messages (both directions)
Translation between substream frames and Http messages (both directions)
To make use of parallelism requests and responses need to be associated (other than by ordering), suggestion is to add a special (virtual) header containing the streamId (or any other kind of token) is added to the HttRequest that must be reproduced in an HttpResponse. This can be done automatically for the bindAndHandleAsync API but for bindAndHandle the user needs to take of this manually.