pass in context to views subscribe/unsubscribe calls
This commit is contained in:
parent
833054913e
commit
2c29f7fe71
|
@ -20,12 +20,12 @@
|
|||
{:on-receive
|
||||
(fn [handler]
|
||||
(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
|
||||
(handler client-id request data))))
|
||||
|
||||
:on-close
|
||||
(fn [handler]
|
||||
(fn [client-id request reason]
|
||||
(server/on-close! client-id)
|
||||
(server/on-close! client-id {:request request})
|
||||
(handler client-id request reason)))})
|
||||
|
|
|
@ -5,31 +5,29 @@
|
|||
[reagent-data-views.utils :refer [relevant-event?]]))
|
||||
|
||||
(defn on-close!
|
||||
[client-id]
|
||||
[client-id context]
|
||||
(log/trace client-id "on-close, unsubscribing from all views")
|
||||
(views/unsubscribe-all! client-id))
|
||||
|
||||
(defn handle-subscriptions!
|
||||
[client-id view-sig]
|
||||
[client-id view-sig context]
|
||||
(log/trace client-id "subscribing to" view-sig)
|
||||
(let [{:keys [view-id parameters]} view-sig]
|
||||
; TODO: namespace
|
||||
(views/subscribe! nil view-id parameters client-id)))
|
||||
(views/subscribe! view-sig client-id context))
|
||||
|
||||
(defn handle-unsubscriptions!
|
||||
[client-id view-sig]
|
||||
[client-id view-sig context]
|
||||
(log/trace client-id "unsubscribing from" view-sig)
|
||||
(let [{:keys [view-id parameters]} view-sig]
|
||||
; TODO: namespace
|
||||
(views/unsubscribe! nil view-id parameters client-id)))
|
||||
(views/unsubscribe! view-sig client-id context))
|
||||
|
||||
(defn on-receive!
|
||||
[client-id data]
|
||||
[client-id data context]
|
||||
(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
|
||||
:views/subscribe (handle-subscriptions! client-id view-sig)
|
||||
:views/unsubscribe (handle-unsubscriptions! client-id view-sig)
|
||||
:views/subscribe (handle-subscriptions! client-id view-sig context)
|
||||
:views/unsubscribe (handle-unsubscriptions! client-id view-sig context)
|
||||
(log/warn client-id "unrecognized event" event "-- full received data:" data))
|
||||
; indicating that we handled the received event
|
||||
true)))
|
||||
|
|
Loading…
Reference in a new issue