Class HttpServerBluePrint
HTTP pipeline setup (without the underlying SSL/TLS (un)wrapping and the websocket switch):
+----------+ +-------------+ +-------------+ +-----------+ HttpRequest | | Http- | request- | Request- | | Request- | request- | ByteString | <------------+ <----------+ Preparation <----------+ <-------------+ Parsing <----------- | | | Request | | Output | | Output | | | | | +-------------+ | | +-----------+ | | | | | | Application- | One2One- | | controller- | | Flow | Bidi | | Stage | | | | | | | | | | | +-----------+ | HttpResponse | | HttpResponse | | Response- | renderer- | ByteString v -------------> +-----------------------------------> +-------------> Pipeline +----------> | | | | Rendering- | | +----------+ +-------------+ Context +-----------+
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static final class
Two state stage, either transforms an incoming RequestOutput into a HttpRequest with strict entity and then pushes that (the "idle" inHandler) or creates a HttpRequest with a streamed entity and switch to a state which will push incoming chunks into the streaming entity until end of request is reached (the StreamedEntityCreator case in create entity).static class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic akka.stream.scaladsl.BidiFlow<HttpResponse,
akka.stream.TLSProtocol.SslTlsOutbound, akka.stream.TLSProtocol.SslTlsInbound, HttpRequest, akka.NotUsed> apply
(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) static akka.stream.scaladsl.BidiFlow<HttpResponse,
ResponseRenderingContext, ParserOutput.RequestOutput, ParserOutput.RequestOutput, akka.NotUsed> controller
(ServerSettings settings, akka.event.LoggingAdapter log) static akka.stream.scaladsl.Flow<akka.stream.TLSProtocol.SessionBytes,
ParserOutput.RequestOutput, akka.NotUsed> parsing
(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection) static akka.stream.scaladsl.BidiFlow<ResponseRenderingContext,
ResponseRenderingOutput, akka.stream.TLSProtocol.SessionBytes, ParserOutput.RequestOutput, akka.NotUsed> parsingRendering
(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) static akka.stream.scaladsl.Flow<ResponseRenderingContext,
ResponseRenderingOutput, akka.NotUsed> rendering
(ServerSettings settings, akka.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering) static akka.stream.scaladsl.BidiFlow<HttpResponse,
HttpResponse, ParserOutput.RequestOutput, HttpRequest, akka.NotUsed> requestPreparation
(ServerSettings settings) static akka.stream.scaladsl.BidiFlow<HttpResponse,
HttpResponse, HttpRequest, HttpRequest, akka.NotUsed> requestTimeoutSupport
(scala.concurrent.duration.Duration timeout, akka.event.LoggingAdapter log) static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,
akka.stream.TLSProtocol.SslTlsOutbound, akka.stream.TLSProtocol.SslTlsInbound, akka.stream.TLSProtocol.SessionBytes, akka.NotUsed> static akka.stream.scaladsl.BidiFlow<HttpResponse,
HttpResponse, HttpRequest, HttpRequest, akka.NotUsed> userHandlerGuard
(int pipeliningLimit) Ensures that the user handler - produces exactly one response per request - has not more thanpipeliningLimit
responses outstandingstatic akka.stream.scaladsl.BidiFlow<ResponseRenderingOutput,
akka.util.ByteString, akka.stream.TLSProtocol.SessionBytes, akka.stream.TLSProtocol.SessionBytes, akka.NotUsed> websocketSupport
(ServerSettings settings, akka.event.LoggingAdapter log)
-
Constructor Details
-
HttpServerBluePrint
public HttpServerBluePrint()
-
-
Method Details
-
apply
public static akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound, applyakka.stream.TLSProtocol.SslTlsInbound, HttpRequest, akka.NotUsed> (ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) -
tlsSupport
public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.stream.TLSProtocol.SslTlsOutbound, tlsSupport()akka.stream.TLSProtocol.SslTlsInbound, akka.stream.TLSProtocol.SessionBytes, akka.NotUsed> -
websocketSupport
public static akka.stream.scaladsl.BidiFlow<ResponseRenderingOutput,akka.util.ByteString, websocketSupportakka.stream.TLSProtocol.SessionBytes, akka.stream.TLSProtocol.SessionBytes, akka.NotUsed> (ServerSettings settings, akka.event.LoggingAdapter log) -
parsingRendering
public static akka.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput, parsingRenderingakka.stream.TLSProtocol.SessionBytes, ParserOutput.RequestOutput, akka.NotUsed> (ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) -
controller
public static akka.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext, controllerParserOutput.RequestOutput, ParserOutput.RequestOutput, akka.NotUsed> (ServerSettings settings, akka.event.LoggingAdapter log) -
requestPreparation
public static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, requestPreparationParserOutput.RequestOutput, HttpRequest, akka.NotUsed> (ServerSettings settings) -
requestTimeoutSupport
public static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, requestTimeoutSupportHttpRequest, HttpRequest, akka.NotUsed> (scala.concurrent.duration.Duration timeout, akka.event.LoggingAdapter log) -
parsing
public static akka.stream.scaladsl.Flow<akka.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput, parsingakka.NotUsed> (ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection) -
rendering
public static akka.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput, renderingakka.NotUsed> (ServerSettings settings, akka.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering) -
userHandlerGuard
public static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, userHandlerGuardHttpRequest, HttpRequest, akka.NotUsed> (int pipeliningLimit) Ensures that the user handler - produces exactly one response per request - has not more thanpipeliningLimit
responses outstanding- Parameters:
pipeliningLimit
- (undocumented)- Returns:
- (undocumented)
-