public class Http2Blueprint
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Http2Blueprint.BidiFlowExt<I1,O1,I2,O2,Mat> |
Constructor and Description |
---|
Http2Blueprint() |
Modifier and Type | Method and Description |
---|---|
static akka.stream.scaladsl.BidiFlow<Http2SubStream,FrameEvent,FrameEvent,Http2SubStream,ServerTerminator> |
clientDemux(Http2ClientSettings settings,
HttpHeaderParser masterHttpHeaderParser)
Creates substreams for every stream and manages stream state machines
and handles priorization (TODO: later)
|
static akka.stream.scaladsl.BidiFlow<HttpRequest,akka.util.ByteString,akka.util.ByteString,HttpResponse,akka.NotUsed> |
clientStack(ClientConnectionSettings settings,
akka.event.LoggingAdapter log,
TelemetrySpi telemetry) |
static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.NotUsed> |
errorHandling(akka.event.LoggingAdapter log) |
static akka.stream.scaladsl.BidiFlow<FrameEvent,akka.util.ByteString,akka.util.ByteString,FrameEvent,akka.NotUsed> |
framing(akka.event.LoggingAdapter log) |
static akka.stream.scaladsl.BidiFlow<FrameEvent,akka.util.ByteString,akka.util.ByteString,FrameEvent,akka.NotUsed> |
framingClient(akka.event.LoggingAdapter log) |
static akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,akka.NotUsed> |
handleWithStreamIdHeader(int parallelism,
scala.Function1<HttpRequest,scala.concurrent.Future<HttpResponse>> handler,
scala.concurrent.ExecutionContext ec)
Returns a flow that handles
parallelism requests in parallel, automatically keeping track of the
Http2StreamIdHeader between request and responses. |
static akka.stream.scaladsl.BidiFlow<FrameEvent,FrameEvent,FrameEvent,FrameEvent,akka.NotUsed> |
hpackCoding(HttpHeaderParser masterHttpHeaderParser,
ParserSettings parserSettings)
Runs hpack encoding and decoding.
|
static akka.stream.scaladsl.BidiFlow<HttpResponse,Http2SubStream,Http2SubStream,HttpRequest,akka.NotUsed> |
httpLayer(ServerSettings settings,
akka.event.LoggingAdapter log,
DateHeaderRendering dateHeaderRendering)
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.
|
static akka.stream.scaladsl.BidiFlow<HttpRequest,Http2SubStream,Http2SubStream,HttpResponse,akka.NotUsed> |
httpLayerClient(HttpHeaderParser masterHttpHeaderParser,
ClientConnectionSettings settings,
akka.event.LoggingAdapter log) |
static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.NotUsed> |
idleTimeoutIfConfigured(scala.concurrent.duration.Duration timeout) |
static void |
logParsingError(ErrorInfo info,
akka.event.LoggingAdapter log,
ParserSettings.ErrorLoggingVerbosity setting) |
static akka.stream.scaladsl.BidiFlow<Http2SubStream,FrameEvent,FrameEvent,Http2SubStream,ServerTerminator> |
serverDemux(Http2ServerSettings settings,
scala.collection.immutable.Seq<FrameEvent.Setting> initialDemuxerSettings,
boolean upgraded)
Creates substreams for every stream and manages stream state machines
and handles priorization (TODO: later)
|
static akka.stream.scaladsl.BidiFlow<HttpResponse,akka.util.ByteString,akka.util.ByteString,HttpRequest,ServerTerminator> |
serverStack(ServerSettings settings,
akka.event.LoggingAdapter log,
scala.collection.immutable.Seq<FrameEvent.Setting> initialDemuxerSettings,
boolean upgraded,
TelemetrySpi telemetry,
DateHeaderRendering dateHeaderRendering) |
static akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,ServerTerminator> |
serverStackTls(ServerSettings settings,
akka.event.LoggingAdapter log,
TelemetrySpi telemetry,
DateHeaderRendering dateHeaderRendering) |
static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,akka.util.ByteString,akka.NotUsed> |
unwrapTls() |
public static akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,ServerTerminator> serverStackTls(ServerSettings settings, akka.event.LoggingAdapter log, TelemetrySpi telemetry, DateHeaderRendering dateHeaderRendering)
public static akka.stream.scaladsl.BidiFlow<HttpResponse,akka.util.ByteString,akka.util.ByteString,HttpRequest,ServerTerminator> serverStack(ServerSettings settings, akka.event.LoggingAdapter log, scala.collection.immutable.Seq<FrameEvent.Setting> initialDemuxerSettings, boolean upgraded, TelemetrySpi telemetry, DateHeaderRendering dateHeaderRendering)
public static akka.stream.scaladsl.BidiFlow<HttpRequest,akka.util.ByteString,akka.util.ByteString,HttpResponse,akka.NotUsed> clientStack(ClientConnectionSettings settings, akka.event.LoggingAdapter log, TelemetrySpi telemetry)
public static akka.stream.scaladsl.BidiFlow<HttpRequest,Http2SubStream,Http2SubStream,HttpResponse,akka.NotUsed> httpLayerClient(HttpHeaderParser masterHttpHeaderParser, ClientConnectionSettings settings, akka.event.LoggingAdapter log)
public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.NotUsed> idleTimeoutIfConfigured(scala.concurrent.duration.Duration timeout)
public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.util.ByteString,akka.NotUsed> errorHandling(akka.event.LoggingAdapter log)
public static akka.stream.scaladsl.BidiFlow<FrameEvent,akka.util.ByteString,akka.util.ByteString,FrameEvent,akka.NotUsed> framing(akka.event.LoggingAdapter log)
public static akka.stream.scaladsl.BidiFlow<FrameEvent,akka.util.ByteString,akka.util.ByteString,FrameEvent,akka.NotUsed> framingClient(akka.event.LoggingAdapter log)
public static akka.stream.scaladsl.BidiFlow<FrameEvent,FrameEvent,FrameEvent,FrameEvent,akka.NotUsed> hpackCoding(HttpHeaderParser masterHttpHeaderParser, ParserSettings parserSettings)
TODO: introduce another FrameEvent type that exclude HeadersFrame and ContinuationFrame from reaching the higher-level.
masterHttpHeaderParser
- (undocumented)parserSettings
- (undocumented)public static akka.stream.scaladsl.BidiFlow<Http2SubStream,FrameEvent,FrameEvent,Http2SubStream,ServerTerminator> serverDemux(Http2ServerSettings settings, scala.collection.immutable.Seq<FrameEvent.Setting> initialDemuxerSettings, boolean upgraded)
settings
- (undocumented)initialDemuxerSettings
- (undocumented)upgraded
- (undocumented)public static akka.stream.scaladsl.BidiFlow<Http2SubStream,FrameEvent,FrameEvent,Http2SubStream,ServerTerminator> clientDemux(Http2ClientSettings settings, HttpHeaderParser masterHttpHeaderParser)
settings
- (undocumented)masterHttpHeaderParser
- (undocumented)public static akka.stream.scaladsl.BidiFlow<HttpResponse,Http2SubStream,Http2SubStream,HttpRequest,akka.NotUsed> httpLayer(ServerSettings settings, akka.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering)
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 bind
API but for
bindFlow the user needs to take of this manually.
- Parameters:
settings
- (undocumented)
log
- (undocumented)
dateHeaderRendering
- (undocumented)
- Returns:
- (undocumented)
-
handleWithStreamIdHeader
public static akka.stream.scaladsl.Flow<HttpRequest,HttpResponse,akka.NotUsed> handleWithStreamIdHeader(int parallelism,
scala.Function1<HttpRequest,scala.concurrent.Future<HttpResponse>> handler,
scala.concurrent.ExecutionContext ec)
Returns a flow that handles parallelism
requests in parallel, automatically keeping track of the
Http2StreamIdHeader between request and responses.
- Parameters:
parallelism
- (undocumented)
handler
- (undocumented)
ec
- (undocumented)
- Returns:
- (undocumented)
-
logParsingError
public static void logParsingError(ErrorInfo info,
akka.event.LoggingAdapter log,
ParserSettings.ErrorLoggingVerbosity setting)
-
unwrapTls
public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,akka.util.ByteString,akka.NotUsed> unwrapTls()