update chat-demo
This commit is contained in:
parent
49409cac62
commit
337b1faf27
|
@ -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 []
|
||||||
|
|
Reference in a new issue