public class PersistentConnection extends java.lang.Object
|Constructor and Description|
|Modifier and Type||Method and Description|
Wraps a connection flow with transparent reconnection support.
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)
* 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