0
我已經寫了一些代碼來使用akka-http 10.0.9通過websockets與瀏覽器進行通信。它很好地工作,除了連接超時。儘管我們正在向客戶端發送持續不斷的數據流,但客戶端並沒有長時間請求任何數據。如何在akka-http中的websocket處理程序中注入keep-alive?
我知道解決的辦法就是注射保活消息到輸入的WebSocket源,如:
val s = Source(List(data....)).keepAlive(15.seconds,() => Strict.TextMessage("heart beat"))
然而,對於流動阿卡-HTTP API調用來處理連接:
path("query") {
parameter('session, 'package) {
(session,packageId) =>
val sg = getGraphManager(session)
sg match {
case Left(error) => complete(StatusCodes.BadRequest -> TSError(msg=error))
case Right(gm) =>
val tsFlow = new TSFlow(ksource, session)
handleWebSocketMessages(Flow.fromGraph(tsFlow.flowGraph))
}
}
}
因此,我從來沒有看到傳入源,因此沒有機會注入保持活動狀態。我應該如何調整結構以便注入保持活力?