2015-12-03 8 views
1

Я пытаюсь запросить постоянное HTTP-соединение с использованием библиотеки Scala Spray-client, так что клиент должен установить соединение один раз, а затем он может выполнять несколько вызовов в одном соединении ,Как создать постоянное HTTP-соединение с использованием Spray-Client

Я не может найти любую информацию об этом на странице документации Spray

ответ

1

Я думаю клиент спрея по умолчанию будет повторно использовать соединение, где это возможно.

По умолчанию соединения, которые не используются в течение 60 секунд, будут прекращены клиентом.

От reference config of spray:

# The time after which an idle connection will be automatically closed. 
# Set to `infinite` to completely disable idle timeouts. 
spray.client.idle-timeout = infinite 

Если отключить простаивающие таймаута, наши связи будут оставаться активными навсегда, если удаленный сервер не установлен, чтобы убить неактивные соединения после некоторого тайм-аута (это вероятно, но спрей клиент должен убедиться, мы всегда можем получить новое соединение, подчиняясь пределу ниже).

Мы можем ограничить размер хоста Коннектор пула 1, чтобы получить желаемое поведение (одно соединение для каждого хоста):

# The maximum number of parallel connections that an `HttpHostConnector` 
# is allowed to establish to a host. Must be greater than zero. 
spray.can.host-connector.max-connections = 1 

Это будет означать, что если послать второй запрос, прежде чем наш первый запрос имеет получил ответ, второй не будет отправлен до завершения первого. Чтобы отправить несколько запросов по одному соединению, не дожидаясь завершения первого, мы можем включить pipelining.

# If this setting is enabled, the `HttpHostConnector` pipelines requests 
# across connections, otherwise only one single request can be "open" 
# on a particular HTTP connection. 
spray.can.host-connector.pipelining = off 

 Смежные вопросы

  • Нет связанных вопросов^_^