   (wait-for-connection [client timeout] (-wait-for-connection client timeout))
   (wait-for-association [client timeout] (-wait-for-association client timeout))
   (send! [client message] (-send! client message))
-  (close [client] (-close client)))
+  (close [client] (-close client))
+  (start-heartbeat-thread [client] (-start-heartbeat-thread client)))
 
 (s/defn ^:always-validate ^:private -connecting? :- s/Bool
   [client :- Client]

    pcp-broker.")
  (close [client]
    "Close the connection.  Once the client is close you will need a
    new one."))

(def Handlers
  "schema for handler map.  String keys are data_schema handlers,

                             :should-stop (promise)
                             :user-data user-data})
        {:keys [websocket-connection]} client]
    (reset! websocket-connection (future (make-connection client)))
    client))
