update chat-demo

This commit is contained in:
Gered 2016-05-08 19:01:24 -04:00
parent 49409cac62
commit 337b1faf27

View file

@ -12,28 +12,21 @@
[net.thegeez.browserchannel.immutant-async-adapter :as immutant] [net.thegeez.browserchannel.immutant-async-adapter :as immutant]
[environ.core :refer [env]])) [environ.core :refer [env]]))
(defonce clients (atom #{}))
(def event-handlers (def event-handlers
{:on-open {:on-open
(fn [session-id request] (fn [session-id request]
(println "session " session-id "connected") (println "client" session-id "connected")
(swap! clients conj session-id) (browserchannel/send-map-to-all {"msg" (str "client " session-id " connected")}))
(doseq [client-id @clients]
(browserchannel/send-map client-id {"msg" (str "client " session-id " connected")})))
:on-close :on-close
(fn [session-id request reason] (fn [session-id request reason]
(println "session " session-id " disconnected: " reason) (println "client" session-id "disconnected. reason: " reason)
(swap! clients disj session-id) (browserchannel/send-map-to-all {"msg" (str "client " session-id " disconnected. reason: " reason)}))
(doseq [client-id @clients]
(browserchannel/send-map client-id {"msg" (str "client " session-id " disconnected " reason)})))
:on-receive :on-receive
(fn [session-id request m] (fn [session-id request m]
(println "session " session-id " sent " m) (println "client" session-id "sent" m)
(doseq [client-id @clients] (browserchannel/send-map-to-all m))})
(browserchannel/send-map client-id m)))})
(def app-routes (def app-routes
(routes (routes
@ -46,7 +39,7 @@
(def handler (def handler
(-> app-routes (-> app-routes
(browserchannel/wrap-browserchannel {:base "/channel" :events event-handlers}) (browserchannel/wrap-browserchannel {:events event-handlers})
(wrap-defaults site-defaults))) (wrap-defaults site-defaults)))
(defn run-jetty [] (defn run-jetty []