Получение «java.io.EOFException:JSON error» с помощью clojure twitter-api

Я написал несколько простой код clojure, который обращается к API потоковой передачи Twitter. Мой код практически такой же, как пример кода, описанный в документации по API -в Twitter :

(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 для аутентификации (не показано). Когда я запускаю метод start-filter и открывается соединение с твиттером, все работает хорошо для заклинания, но если поток неактивен немного (около 30 секунд), т.е. нет твитов об этом конкретном пользователе падают вниз, возникает следующая ошибка:

#<EOFException java.io.EOFException: JSON error (end-of-file)>

Я предположил из документации по твиттеру, что при использовании потокового соединения твиттер сохраняет поток открытым на неопределенный срок. Должно быть, я делаю какие-то неверные предположения. В настоящее время я погружаюсь в код clojure twitter-api, чтобы посмотреть, что происходит, но я подумал, что большее количество глаз поможет мне быстрее понять это.

5
задан mofeeta 11 April 2012 в 22:21
поделиться