Ensure order of messages is preserved.

This commit is contained in:
Alexander Hudek 2015-08-10 19:37:25 -04:00
parent 34a961658b
commit 68440ee178
3 changed files with 5 additions and 4 deletions

View file

@ -1,10 +1,10 @@
(defproject net.thegeez/clj-browserchannel-jetty-adapter "0.0.6"
(defproject net.thegeez/clj-browserchannel-jetty-adapter "0.0.7"
:description "Jetty async adapter for BrowserChannel"
:url ""
:dependencies [[ring/ring-core "1.3.1"]
[ring/ring-servlet "1.3.1"]
[org.eclipse.jetty/jetty-server "8.1.16.v20140903"];; includes ssl
[net.thegeez/clj-browserchannel-server "0.1.0"]]
[net.thegeez/clj-browserchannel-server "0.2.0"]]
:profiles {:provided
{:dependencies
[[org.clojure/clojure "1.6.0"]]}})

View file

@ -1,4 +1,4 @@
(defproject net.thegeez/clj-browserchannel-server "0.1.0"
(defproject net.thegeez/clj-browserchannel-server "0.2.0"
:description "BrowserChannel server implementation in Clojure"
:dependencies [[ring/ring-core "1.3.1"]
[org.clojure/data.json "0.2.5"]]

View file

@ -89,8 +89,9 @@
{:ofs (Long/parseLong ofs)
:maps (->> (for [[k v] pieces]
(let [[_ n k] (re-find #"req(\d+)_(\w+)" k)]
[n {k v}]))
[(Long/parseLong n) {k v}]))
(group-by first) ; {0 [[0 [k1 v2]] [0 [k2 v2]]],1 [[1 [k1 v1]] [1 [k2 v2]]]}
(sort-by first) ;; order by request number so that messages are recieved on server in same order
(map #(into {} (map second (val %)))))}))
(assert (= {:ofs 0 :maps [{"x" "3" "y" "10"} {"abc" "def"}]}