Multithreading 使用Ring/Jetty和InputStream的并发请求

Multithreading 使用Ring/Jetty和InputStream的并发请求,multithreading,clojure,jetty,inputstream,ring,Multithreading,Clojure,Jetty,Inputstream,Ring,对于一个项目,我使用InputStream作为Ring的响应体。这非常有效,但是,服务器在流式传输单个响应时不会响应任何其他请求 例如,当我启动五个并发请求时,只有第一个请求启动。然后是下一个,等等 这是我的代码的简化版本。我使用cljhttp获取维基百科图像的输入流,并将其直接传递给响应 (ns streaming.server (:require [ring.adapter.jetty :refer [run-jetty]] [clj-http.client :a

对于一个项目,我使用
InputStream
作为Ring的响应体。这非常有效,但是,服务器在流式传输单个响应时不会响应任何其他请求

例如,当我启动五个并发请求时,只有第一个请求启动。然后是下一个,等等

这是我的代码的简化版本。我使用
cljhttp
获取维基百科图像的输入流,并将其直接传递给响应

(ns streaming.server
  (:require [ring.adapter.jetty :refer [run-jetty]]
            [clj-http.client :as client]))

(defn app [request]
  (let [large-image-url "https://upload.wikimedia.org/wikipedia/commons/3/3d/LARGE_elevation.jpg"]
    (client/get large-image-url {:as :stream})))

(defn -main [& args]
  (run-jetty app {:port 3000 :join? false}))

这是预期的行为吗?我做错了什么?

听起来您的客户端正在使用持久http连接