5
我写了一些简单的clojure代码来访问twitter流api。我的代码本质上是一样的,在Twitter的API文档中描述的例子的代码:使用clojure获取“java.io.EOFException:JSON错误”twitter-api
(def ^:dynamic *custom-streaming-callback*
(AsyncStreamingCallback. (comp println #(:text %) json/read-json #(str %2))
(comp println response-return-everything)
exception-print))
(defn start-filtering []
(statuses-filter :params {:follow 12345}
:oauth-creds *creds*
:callbacks *custom-streaming-callback*))
我以下关于特定用户鸣叫和使用OAuth进行认证(未示出)。当我运行开始过滤方法并且用twitter打开一个连接时,一切都很适合咒语,但是如果流在一段时间内(30秒左右)处于非活动状态,也就是说没有关于这个特定用户的推文正在下沉,发生以下错误:
#<EOFException java.io.EOFException: JSON error (end-of-file)>
我从推特文档中假设,当使用流连接时,twitter会使流无限期打开。我必须做出一些不正确的假设。我目前正在探索clojure twitter-api代码以了解发生了什么,但我认为更多的眼睛会帮助我更快地了解这一点。
这是一个好主意,在twitter-api的github问题跟踪器上打开一个问题。除非作者投身SO并看到这一点,否则任何人都不会知道如何解决这个问题。 – Rayne 2012-04-28 04:17:40