У меня есть вопрос.
У меня есть Akka HTTP Server и я использую Akka HTTP Client.Клиент делает много внешних вызовов в основном с помощью Http.singleRequest ().Это занимает много времени, и иногда Пользователь закрывает соединение с моим Сервером.
Итак, вопрос - как я могу определить, что пользователь закрыл соединение?
server.scala:
val requestHandler: HttpRequest => HttpResponse = {
case HttpRequest(HttpMethods.GET, Uri.Path("/"), _, _, _) =>
Thread.sleep(5000)
println("reply")
HttpResponse(entity = HttpEntity(
ContentTypes.`text/html(UTF-8)`,
"Ok"))
}
val serverBinding: Future[Http.ServerBinding] = Http().bind(host, port)
.via(reactToTopLevelFailures)
.to(Sink.foreach { connection: IncomingConnection =>
println("Accepted new connection from " + connection.remoteAddress)
connection.handleWith(Flow[HttpRequest] map requestHandler)
})
.run()
Вы можете просто сделать запрос через cURL и отменить его немедленно, вы все равно увидите «ответить» в консоли.
Спасибо