switch to cheshire for json encoding

cheshire is significantly faster then data.json. i'm assuming the only
reason data.json was being used was due to the age of this project
This commit is contained in:
Gered 2016-05-11 09:27:22 -04:00
parent 37db9ce909
commit d4c5784b4a
2 changed files with 7 additions and 7 deletions

View file

@ -1,7 +1,7 @@
(defproject gered/clj-browserchannel "0.3" (defproject gered/clj-browserchannel "0.3"
:description "BrowserChannel server implementation in Clojure, with a ClojureScript wrapper for the BrowserChannel API included in Google Closure." :description "BrowserChannel server implementation in Clojure, with a ClojureScript wrapper for the BrowserChannel API included in Google Closure."
:dependencies [[ring/ring-core "1.4.0"] :dependencies [[ring/ring-core "1.4.0"]
[org.clojure/data.json "0.2.6"] [cheshire "5.6.1"]
[prismatic/dommy "1.1.0"]] [prismatic/dommy "1.1.0"]]
:profiles {:provided :profiles {:provided
{:dependencies {:dependencies

View file

@ -4,7 +4,7 @@
[java.util.concurrent ScheduledExecutorService Executors TimeUnit Callable ScheduledFuture]) [java.util.concurrent ScheduledExecutorService Executors TimeUnit Callable ScheduledFuture])
(:require (:require
[clojure.edn :as edn] [clojure.edn :as edn]
[clojure.data.json :as json] [cheshire.core :as json]
[ring.middleware.params :as params] [ring.middleware.params :as params]
[net.thegeez.browserchannel.async-adapter :as async-adapter])) [net.thegeez.browserchannel.async-adapter :as async-adapter]))
@ -231,7 +231,7 @@
(async-adapter/head respond 200 (merge headers ie-headers)) (async-adapter/head respond 200 (merge headers ie-headers))
(async-adapter/write-chunk respond "<html><body>\n") (async-adapter/write-chunk respond "<html><body>\n")
(when (seq domain) (when (seq domain)
(async-adapter/write-chunk respond (str "<script>try{document.domain=\"" (pr-str (json/write-str domain)) "\";}catch(e){}</script>\n")))) (async-adapter/write-chunk respond (str "<script>try{document.domain=\"" (pr-str (json/generate-string domain)) "\";}catch(e){}</script>\n"))))
(write [this data] (write [this data]
(async-adapter/write-chunk respond (str "<script>try {parent.m(" (pr-str data) ")} catch(e) {}</script>\n")) (async-adapter/write-chunk respond (str "<script>try {parent.m(" (pr-str data) ")} catch(e) {}</script>\n"))
@ -597,7 +597,7 @@
(defn- send-map (defn- send-map
[session-id m] [session-id m]
(when-let [session-agent (get @sessions session-id)] (when-let [session-agent (get @sessions session-id)]
(let [string (json/write-str m)] (let [string (json/generate-string m)]
(send-off session-agent #(-> % (send-off session-agent #(-> %
(queue-string string) (queue-string string)
flush-buffer)) flush-buffer))
@ -684,7 +684,7 @@
(rand-nth prefixes))] (rand-nth prefixes))]
{:status 200 {:status 200
:headers (assoc (:headers options) "X-Accept" "application/json; application/x-www-form-urlencoded") :headers (assoc (:headers options) "X-Accept" "application/json; application/x-www-form-urlencoded")
:body (json/write-str [host-prefix, nil])}) :body (json/generate-string [host-prefix, nil])})
;; else phase 2 for get /test ;; else phase 2 for get /test
;; client checks if connection is buffered ;; client checks if connection is buffered
@ -720,7 +720,7 @@
host-prefix nil] host-prefix nil]
{:status 200 {:status 200
:headers (assoc (:headers options) "Content-Type" "application/javascript") :headers (assoc (:headers options) "Content-Type" "application/javascript")
:body (size-json-str (json/write-str [[0, ["c", session-id, host-prefix, 8]]]))}) :body (size-json-str (json/generate-string [[0, ["c", session-id, host-prefix, 8]]]))})
;; For existing sessions: ;; For existing sessions:
;; Forward sent data by client to listeners ;; Forward sent data by client to listeners
;; reply with ;; reply with
@ -734,7 +734,7 @@
(let [status (session-status @session-agent)] (let [status (session-status @session-agent)]
{:status 200 {:status 200
:headers (:headers options) :headers (:headers options)
:body (size-json-str (json/write-str status))}))))) :body (size-json-str (json/generate-string status))})))))
;; GET req server->client is a backwardchannel opened by client ;; GET req server->client is a backwardchannel opened by client
(defn- handle-backward-channel (defn- handle-backward-channel