Получить данные из постоянного соединения http
Я пытался в течение нескольких дней, я немного запутался здесь. Я использую clojure http-kit, чтобы сделать запрос активности keepalive.
(ns weibo-collector.weibo
(:require [org.httpkit.client :as http]
[clojure.java.io :as io]))
(def sub-url "http://c.api.weibo.com/datapush/status?subid=10542")
(defn spit-to-file [content]
(spit "sample.data" content :append true))
@(http/get sub-url {:as :stream :keepalive 3000000}
(fn [{:keys [status headers body error opts]}]
(spit-to-file body)
))
Я почти уверен, что установил постоянное соединение с целевым сервером, но ничего не записано в файл sample.data. Я пробовал как поток и как текст.
Я также попробовал ruby-версию, программа также создала постоянное соединение, но ничего не написано.
Поэтому, как правило, цель будет использовать webhook для оповещения моего сервера о новых данных, но как мне получить данные из постоянного соединения?
---РЕДАКТИРОВАТЬ---
require 'awesome_print'
url = "http://c.api.weibo.com/datapush/status?subid=10542"
require "httpclient"
c = HTTPClient.new
conn = c.get_async(url)
Thread.new do
res = conn.pop
while true
text = ""
while ch = res.content.read(1)
text = text+ch
break if text.end_with? "\r\n"
end
ap text
end
end
while true
end
Выше приведен рабочий пример использования ruby, который использует поток для чтения данных из соединения. Поэтому я должен что-то пропустить, чтобы получить данные из clojure