    ;; Websocket Server
    i ip ADDR         str  "The IP address for the websocket server to listen on. (optional)"
    p port PORT       int  "The port the websocket server listens on. (optional)"
-   w ws-host WSADDR  str  "The websocket host address to pass to clients. (optional)"
+   w ws-host WSADDR  str  "The websocket host clients connect to. Defaults to current host. (optional)"
    s secure          bool "Flag to indicate whether the client should connect via wss. Defaults to false."
    ;; Other Configuration
    j on-jsload SYM     sym "The callback to call when JS files are reloaded. (optional)"

        prev-pre (atom nil)
        prev (atom nil)
        out  (doto (io/file src "adzerk" "boot_reload.cljs") io/make-parents)
        url  (start-server @pod {:ip ip :port port :ws-host ws-host :secure? secure
                                 :open-file open-file})]
    (set-env! :source-paths #(conj % (.getPath src)))
    (write-cljs! out url on-jsload asset-host)
    (fn [next-task]
      (fn [fileset]
        (pod/with-call-in @pod

  (let [{:keys [ip port]} (pod/with-call-in pod (adzerk.boot-reload.server/start ~opts))
        host              (cond ws-host ws-host (= ip "0.0.0.0") "localhost" :else ip)
        proto             (if secure? "wss" "ws")]
    [(util/with-let [url (format "%s://%s:%d" proto host port)]
       (util/info "Starting reload server on %s\n" url))
     ws-host]))

(defn- write-cljs! [f url ws-host on-jsload asset-host]
  (util/info "Writing %s to connect to %s...\n" (.getName f)
             (if ws-host url "default websocket host"))
  (->> (template
         ((ns adzerk.boot-reload
            (:require
             [adzerk.boot-reload.client :as client]
             ~@(when on-jsload [(symbol (namespace on-jsload))]))
            (:import goog.Uri))
          (let [passed-uri  (Uri. ~url)
                protocol    (.getScheme passed-uri)
                host        (or ~ws-host (.-hostname (.-location js/window)))
                port        (.getPort passed-uri)
                url         (str proto "://" host ":" port)]
            (client/connect url {:on-jsload #(~(or on-jsload '+))
                                 :asset-host ~asset-host}))))
    (map pr-str) (interpose "\n") (apply str) (spit f)))

(defn- send-visual! [pod messages]
