Я новичок в scala. В настоящее время для создания остальных API я использую спрей. Теперь я хочу использовать API с другого сервера. Я вызываю этот API на каждое нажатие клавиши из пользовательского интерфейса. Я отменяю запрос, используя AbortController, если пользователь продолжает печатать, а предыдущий запрос находится в состоянии ожидания. Чтобы попасть на другой запрос сервера, я использую спрей-клиент. Что выглядит примерно так:
def completeService(completeRequest: CompleteRequest): Future[HttpResponse] = {
val pipeline: HttpRequest => Future[HttpResponse] = sendReceive ~> unmarshal[HttpResponse]
val response: Future[HttpResponse] = pipeline(Post(someremoteUrl.concat("complete"), completeRequest)
~> addHeader("demo", "test"))
response
}
Я могу получить доступ, используя этот код выше. И я получаю ожидаемый ответ. Но дело отнимает много времени. Он создает новое TCP-соединение и связывается с хостом, нажимает API, дает ответ, а затем разрывает соединение. Здесь во время завершения он иногда простаивает и не принимает новое соединение.
Есть ли альтернативный способ сделать это?