我正在尝试使用clojure处理HTTP流。
我能够将流写入文件,但是我尝试使用core.async处理消息。
我在这里遵循了这个答案: Processing a stream of messages from a http server in clojure
但是,当我在java.io.BufferedReader上调用(line-seq)时,它会冻结。
(defn trades-stream
[]
(let [session (new-session)
{:keys [url sessionid]} (:stream session)
dump-url (str url "?sessionid=" sessionid "&symbols=mu" )
lines (-> dump-url
(client/get {:as :stream})
:body
io/reader)]
(line-seq lines )))
有人知道我将如何应对吗?谢谢!
答案 0 :(得分:0)
请注意,LPMatrixIterator
是惰性的,在被迫成字符串或其他东西之前不会做任何事情。也许尝试
line-seq
或
(println (first (line-seq lines)))
您还可以使用(reduce conj [] (line-seq lines)) ; then print something
将内容作为字符串获取。