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连接