Play2 Framework-Proxy-Streaming-Inhalt zum Client hält die Verbindung offen, nachdem das Streaming abgeschlossen ist

Der folgende Code überträgt das Streaming zurück an den Client. Was ich zusammenfasse, ist idiomatischer als die Verwendung von Java-E / A-Streams. Es gibt jedoch ein Problem: Die Verbindung wird nach dem Streaming geöffnet.

def getImage() = Action { request =>
  val imageUrl = "http://hereandthere.com/someimageurl.png"
  Ok.stream({ content: Iteratee[Array[Byte], Unit] => 
    WS.url(imageUrl).withHeaders("Accept"->"image/png").get { response => content }
    return
  }).withHeaders("Content-Type"->"image/png")
}

Dies ist für das Streaming großer Dateien (> 1 MB) von der internen API zum Anforderer vorgesehen.

Die Frage ist, warum bleibt die Verbindung offen? Gibt es etwas, das es vom Upstream-Server erwartet? Ich habe den Upstream-Server mit curl getestet und die Verbindung wird geschlossen - sie wird nur dann nicht geschlossen, wenn sie über diesen Proxy geleitet wird.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage