Class PersistentConnection


  • public class PersistentConnection
    extends java.lang.Object
    INTERNAL API
    • Constructor Detail

      • PersistentConnection

        public PersistentConnection()
    • Method Detail

      • managedConnection

        public static akka.stream.scaladsl.Flow<HttpRequest,​HttpResponse,​akka.NotUsed> managedConnection​(akka.stream.scaladsl.Flow<HttpRequest,​HttpResponse,​scala.concurrent.Future<Http.OutgoingConnection>> connectionFlow,
                                                                                                                     Http2ClientSettings settings)
        Wraps a connection flow with transparent reconnection support.

        Backpressure logic:

        * when unconnected wait for pull on response side to pull request side * when first request comes in, establish connection and send initial request to connection * connection then drives backpressure logic, i.e. * it may pull regardless of outer demand * if it pulls and runs multiple requests concurrently, it must also buffer them internally * this stage will only ever buffer requests directly in the incoming request slot * outgoing responses are never buffer but we pull the connection only if there is outer demand

        Error reporting logic when connection breaks while requests are running: * generate error responses with 502 status code * custom attribute contains internal error information

        Parameters:
        connectionFlow - (undocumented)
        settings - (undocumented)
        Returns:
        (undocumented)