My server looks like this and its been working for me for the past few months without issue:
(defroutes ws-routes (GET "/cmd/chsk" req (ring-ajax-get-or-ws-handshake req)) (POST "/cmd/chsk" req (ring-ajax-post req))) (defn run [& [routes]] (let [site (http-handler/site (compojure/routes ws-routes routes)) webserver (httpkit/run-server site {:port 3002}) {:keys [ch-recv send-fn ajax-post-fn ajax-get-or-ws-handshake-fn connected-uids]} (sente/make-channel-socket! {})] (def ring-ajax-post ajax-post-fn) (def ring-ajax-get-or-ws-handshake ajax-get-or-ws-handshake-fn) (def ch-chsk ch-recv) ; ChannelSocket's receive channel (def chsk-send! send-fn) ; ChannelSocket's send API fn (def connected-uids connected-uids) ; Watchable, read-only atom (def server webserver) (sente/start-chsk-router-loop! sente-message-router ch-chsk) webserver)) Where sente-message-router is a function that receives messages from the client. In my actual codebase, there is a little more additional code for setting up client-id's and CSRF tokens too. On 26 July 2014 05:33, Timothy Washington <twash...@gmail.com> wrote: > Hi all, > > I'm using [com.taoensso/sente "0.15.1" > <https://github.com/ptaoussanis/sente>], and having trouble connecting > the client to the server. I'm sure it's something simple, but not obvious, > as this is taken directly from the examples on sente's github page. Anyone > seen and fixed the error in fig.1? The clojurescript and clojure code are > in fig 2 and 3 respectively. > > > WebSocket connection to 'ws://172.28.128.5:58269/chsk' failed: Error > during WebSocket handshake: Unexpected response code: 404 > WebSocket error: [object Event] VM1707:1689 > Chsk is closed: will try reconnect (8). VM1707:1689 > > fig.1 - Chrome network error message > > (ns my.ns > (:require-macros > [cljs.core.match.macros :refer (match)] ; Optional, useful > [cljs.core.async.macros :as asyncm :refer (go go-loop)]) > (:require > ;;[clojure.browser.repl :as repl] > [cljs.core.match] ; Optional, useful > [cljs.core.async :as async :refer (<! >! put! chan)] > [taoensso.sente :as sente :refer (cb-success?)])) > > > (let [{:keys [chsk ch-recv send-fn state]} > (sente/make-channel-socket! "/chsk" {:type :auto})] > > (def chsk chsk) > (def ch-chsk ch-recv) > (def chsk-send! send-fn) > (def chsk-state state)) > > (defn one [] > (chsk-send! [:some/request-id {:name "Rich Hickey" :type "Awesome"}])) > > > *fig.2 - my.cljs * > > > (ns my.http.ns > (:require [compojure.core :refer :all] > ... > > ;; Sente stuff > [clojure.core.match :as match :refer (match)] ; Optional, > useful > [clojure.core.async :as async :refer (<! <!! >! >!! put! chan > go go-loop)] > [taoensso.sente :as sente])) > > > (let [{:keys [ch-recv send-fn ajax-post-fn ajax-get-or-ws-handshake-fn]} > (sente/make-channel-socket! {})] > > (def ring-ajax-post ajax-post-fn) > (def ring-ajax-get-or-ws-handshake ajax-get-or-ws-handshake-fn) > (def ch-chsk ch-recv) > (def chsk-send! send-fn)) > > ... > > (defn create-approutes [project-config browserrepl] > > (defroutes app-routes > > ;; Sente stuff > (GET "/chsk" req (ring-ajax-get-or-ws-handshake req)) ; tried both > ring-ajax-get-or-ws-handshake and *#'*ring-ajax-get-or-ws-handshake > (POST "/chsk" req (ring-ajax-post req)) ; same > here for trying both > > > (GET "/" [] > (-> (ring-resp/response (with-browser-repl "index.html" > browserrepl)) > (ring-resp/content-type "text/html"))) > > (route/resources "/" {:root "resources/public/"}) > (route/not-found "Not Found"))) > > *fig.3 - my.clj * > > > Tim Washington > Interruptsoftware.com <http://interruptsoftware.com> > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.