2013-08-24 2 views
3

, 나는 스트리밍 HTTP 응답 처리하기 위해 전화를 사용하고 스트리밍 HTTP 응답 닫힌 연결을 처리 : _ => (Iteratee.foreach(chunk => println(chunk)))재생! 2 WS 라이브러리 : 검색 및 재생 WS 라이브러리에서

: 내가 좋아하는 그에게 무언가를 전달하고

def get[A](consumer: ResponseHeaders => Iteratee[Array[Byte], A]): 
    Future[Iteratee[Array[Byte], A]] 

모든 것이 잘 작동하지만 어떤 시점에서 연결이 닫히고 이것이 처리하는 방법을 모르겠습니다. 나는 Iteratee가 완료되었을 때 .mapDone을 추가해 보았지만 결코 일어나지 않았다.

이 요청에서 어떻게 연결이 닫혔는지 감지하고 해당 이벤트를 처리 할 수 ​​있습니까?

+0

[내 질문] (https://stackoverflow.com/questions/22655566/file-writing-iteratee-does-not- receive-eof-for-ws-get)가 도움이 될 것입니다. – Emre

답변

0

Play 2.2.3에서는 더 이상 문제가없는 것으로 보입니다. 스트림이 닫힐 때 Unit 호출해야한다 아래에 정의 된 기능이 map에 전달 :

val connection = WS.url("http://example.com") 
    .get(_ => iteratee).flatMap(_.run) map { _ => println("closed") }