From 67ab2a1bfb4da7f63c960f142f37dddee8e9a13c Mon Sep 17 00:00:00 2001 From: plasticchris Date: Thu, 2 Jun 2016 21:35:53 -0700 Subject: [PATCH] adds an echo handler to the messeji websocket server --- .../com/hello/messeji/experimental/websockets.clj | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/clojure/com/hello/messeji/experimental/websockets.clj b/src/main/clojure/com/hello/messeji/experimental/websockets.clj index 44784f6..df2cd13 100644 --- a/src/main/clojure/com/hello/messeji/experimental/websockets.clj +++ b/src/main/clojure/com/hello/messeji/experimental/websockets.clj @@ -95,9 +95,22 @@ (fn [_] non-websocket-request))))) +(defn echo-handler + "This is another asynchronous handler, but uses `let-flow` instead of `chain` to define the + handler in a way that at least somewhat resembles the synchronous handler." + [req] + (-> + (d/let-flow [socket (http/websocket-connection req)] + (s/connect socket socket)) + (d/catch + (fn [_] + non-websocket-request)))) + (def handler (compojure/routes - (GET "/dispatch" req (dispatch-handler req)))) + (GET "/dispatch" req (dispatch-handler req)) + (GET "/echo" [] echo-handler) + (route/not-found "No such page."))) (defn start-server []