pass in context to views subscribe/unsubscribe calls
This commit is contained in:
parent
833054913e
commit
2c29f7fe71
|
@ -20,12 +20,12 @@
|
||||||
{:on-receive
|
{:on-receive
|
||||||
(fn [handler]
|
(fn [handler]
|
||||||
(fn [client-id request data]
|
(fn [client-id request data]
|
||||||
(if-not (server/on-receive! client-id data)
|
(if-not (server/on-receive! client-id data {:request request})
|
||||||
; only pass along receive events for data not intended for the views system
|
; only pass along receive events for data not intended for the views system
|
||||||
(handler client-id request data))))
|
(handler client-id request data))))
|
||||||
|
|
||||||
:on-close
|
:on-close
|
||||||
(fn [handler]
|
(fn [handler]
|
||||||
(fn [client-id request reason]
|
(fn [client-id request reason]
|
||||||
(server/on-close! client-id)
|
(server/on-close! client-id {:request request})
|
||||||
(handler client-id request reason)))})
|
(handler client-id request reason)))})
|
||||||
|
|
|
@ -5,31 +5,29 @@
|
||||||
[reagent-data-views.utils :refer [relevant-event?]]))
|
[reagent-data-views.utils :refer [relevant-event?]]))
|
||||||
|
|
||||||
(defn on-close!
|
(defn on-close!
|
||||||
[client-id]
|
[client-id context]
|
||||||
(log/trace client-id "on-close, unsubscribing from all views")
|
(log/trace client-id "on-close, unsubscribing from all views")
|
||||||
(views/unsubscribe-all! client-id))
|
(views/unsubscribe-all! client-id))
|
||||||
|
|
||||||
(defn handle-subscriptions!
|
(defn handle-subscriptions!
|
||||||
[client-id view-sig]
|
[client-id view-sig context]
|
||||||
(log/trace client-id "subscribing to" view-sig)
|
(log/trace client-id "subscribing to" view-sig)
|
||||||
(let [{:keys [view-id parameters]} view-sig]
|
(views/subscribe! view-sig client-id context))
|
||||||
; TODO: namespace
|
|
||||||
(views/subscribe! nil view-id parameters client-id)))
|
|
||||||
|
|
||||||
(defn handle-unsubscriptions!
|
(defn handle-unsubscriptions!
|
||||||
[client-id view-sig]
|
[client-id view-sig context]
|
||||||
(log/trace client-id "unsubscribing from" view-sig)
|
(log/trace client-id "unsubscribing from" view-sig)
|
||||||
(let [{:keys [view-id parameters]} view-sig]
|
(views/unsubscribe! view-sig client-id context))
|
||||||
; TODO: namespace
|
|
||||||
(views/unsubscribe! nil view-id parameters client-id)))
|
|
||||||
|
|
||||||
(defn on-receive!
|
(defn on-receive!
|
||||||
[client-id data]
|
[client-id data context]
|
||||||
(when (relevant-event? data)
|
(when (relevant-event? data)
|
||||||
(let [[event view-sig] data]
|
(let [[event view-sig] data
|
||||||
|
; for safety, since this is otherwise coming in un-altered from clients
|
||||||
|
view-sig (dissoc view-sig :namespace)]
|
||||||
(condp = event
|
(condp = event
|
||||||
:views/subscribe (handle-subscriptions! client-id view-sig)
|
:views/subscribe (handle-subscriptions! client-id view-sig context)
|
||||||
:views/unsubscribe (handle-unsubscriptions! client-id view-sig)
|
:views/unsubscribe (handle-unsubscriptions! client-id view-sig context)
|
||||||
(log/warn client-id "unrecognized event" event "-- full received data:" data))
|
(log/warn client-id "unrecognized event" event "-- full received data:" data))
|
||||||
; indicating that we handled the received event
|
; indicating that we handled the received event
|
||||||
true)))
|
true)))
|
||||||
|
|
Loading…
Reference in a new issue