我正在尝试使用Scala Spray-client库请求持久的HTTP连接,以便客户端必须建立一次连接,然后它可以在同一连接上进行多次调用。
我无法在Spray文档页面上找到任何相关信息
答案 0 :(得分:1)
我认为默认情况下,喷涂客户端会尽可能重用连接。
默认情况下,客户端将终止60秒未使用的连接。
# The time after which an idle connection will be automatically closed.
# Set to `infinite` to completely disable idle timeouts.
spray.client.idle-timeout = infinite
如果我们禁用空闲超时,我们的连接将永远保持活动状态,除非远程服务器设置为在一些超时后终止空闲连接(可能是这样,但喷涂客户端应确保我们始终可以获得新连接,遵守限制波纹管)。
我们可以将Host Connector池的大小限制为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