    [clojure.core.match :as match :refer (match)]
    [taoensso.sente :as sente]
    [com.stuartsierra.component :as component]
-   [clojure.core.async :as async :refer [chan <! put! tap untap-all sub unsub-all go-loop]]))
+   [clojure.core.async :as async :refer [chan <! >! put! tap untap-all timeout go-loop]]))
 
 (defn- user-id-fn
   "generates unique ID for request"

               chsk-router (sente/start-chsk-router! ch-recv event-handler)]
           (tap event-mult inspect-chan)
           (event-loop inspect-chan connected-uids send-fn)
           (assoc component
             :ajax-post-fn ajax-post-fn
             :ajax-get-or-ws-handshake-fn ajax-get-or-ws-handshake-fn

  "send set with known event types to connected UIs"
  [uids chsk-send!]
  (doseq [uid (:any @uids)]
    (chsk-send! uid [:info/stats @stats]))
  (reset! stats (into {} (map (fn [[t _]] [t 0]) @stats))))

(defn- make-handler
  "create event handler function for the websocket connection"
