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 org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,
org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, org.apache.pekko.stream.TLSProtocol.SslTlsInbound, HttpRequest, org.apache.pekko.NotUsed> apply
(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,
ResponseRenderingContext, ParserOutput.RequestOutput, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> controller
(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log) static org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.stream.TLSProtocol.SessionBytes,
ParserOutput.RequestOutput, org.apache.pekko.NotUsed> parsing
(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection) static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingContext,
ResponseRenderingOutput, org.apache.pekko.stream.TLSProtocol.SessionBytes, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> parsingRendering
(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) static org.apache.pekko.stream.scaladsl.Flow<ResponseRenderingContext,
ResponseRenderingOutput, org.apache.pekko.NotUsed> rendering
(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering) static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,
HttpResponse, ParserOutput.RequestOutput, HttpRequest, org.apache.pekko.NotUsed> requestPreparation
(ServerSettings settings) static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,
HttpResponse, HttpRequest, HttpRequest, org.apache.pekko.NotUsed> requestTimeoutSupport
(scala.concurrent.duration.Duration timeout, org.apache.pekko.event.LoggingAdapter log) static org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,
org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, org.apache.pekko.stream.TLSProtocol.SslTlsInbound, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,
HttpResponse, HttpRequest, HttpRequest, org.apache.pekko.NotUsed> userHandlerGuard
(int pipeliningLimit) Ensures that the user handler - produces exactly one response per request - has not more thanpipeliningLimit
responses outstandingstatic org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingOutput,
org.apache.pekko.util.ByteString, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> websocketSupport
(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log)
-
Constructor Details
-
HttpServerBluePrint
public HttpServerBluePrint()
-
-
Method Details
-
apply
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, applyorg.apache.pekko.stream.TLSProtocol.SslTlsInbound, HttpRequest, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) -
tlsSupport
public static org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, tlsSupport()org.apache.pekko.stream.TLSProtocol.SslTlsInbound, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> -
websocketSupport
public static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingOutput,org.apache.pekko.util.ByteString, websocketSupportorg.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log) -
parsingRendering
public static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput, parsingRenderingorg.apache.pekko.stream.TLSProtocol.SessionBytes, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) -
controller
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext, controllerParserOutput.RequestOutput, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log) -
requestPreparation
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, requestPreparationParserOutput.RequestOutput, HttpRequest, org.apache.pekko.NotUsed> (ServerSettings settings) -
requestTimeoutSupport
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, requestTimeoutSupportHttpRequest, HttpRequest, org.apache.pekko.NotUsed> (scala.concurrent.duration.Duration timeout, org.apache.pekko.event.LoggingAdapter log) -
parsing
public static org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput, parsingorg.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection) -
rendering
public static org.apache.pekko.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput, renderingorg.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering) -
userHandlerGuard
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, userHandlerGuardHttpRequest, HttpRequest, org.apache.pekko.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)
-