2013-10-05 81 views
0

您好我正在做一個連接到Twitter的流API的應用程序,我使用的WS做出這樣如何使用持久連接在Playframework中使用WS檢測連接關閉?

WS.url(endpoint).withTimeout(-1).sign(OAuthCalculator(consumerKey, accessToken)).postAndRetrieveStream(parameters)(processResponse(_)) 

def processResponse(headers: ResponseHeaders) = { 
    Iteratee.foreach[Array[Byte]] { chunk => 
    val chunkString = new String(chunk, "UTF-8") 
    println(chunkString) 
    } 
} 

的方面,我想知道是否有什麼辦法可以檢測是否連接已由推特關閉

謝謝!

+0

我意識到,將超時設置爲-1會使連接永遠存活,如果例如網絡連接丟失,則無法獲得通知。 – GuidoMB

回答

0
val future: Future[Unit] = WS.url(endpoint).withTimeout(-1).sign(OAuthCalculator(consumerKey, accessToken)).postAndRetrieveStream(parameters)(processResponse(_)) 

def processResponse(headers: ResponseHeaders) = { 
    Iteratee.foreach[Array[Byte]] { chunk => 
    val chunkString = new String(chunk, "UTF-8") 
    println(chunkString) 
    } 
} 

future.map { _ => 
    println("done") 
}