(ns openretro.main (:require [org.httpkit.server :as http-server] [reitit.ring :as ring] [ring.middleware.defaults :refer [wrap-defaults api-defaults]] [hiccup.page :as h])) (defn ws-endpoint [req] (println "ws incoming") (http-server/with-channel req channel (http-server/on-close channel (fn [status] (println "closed" status))) (http-server/on-receive channel (fn [data] (println "received" data) (http-server/send! channel data))))) (def router (ring/ring-handler (ring/router [["/ws" {:get {:handler ws-endpoint}}]]) (ring/routes (ring/create-resource-handler {:path "/"})))) (defonce server (atom nil)) (defn stop-server [] (when-not (nil? @server) (@server :timeout 1000) (reset! server nil))) (defn start-server [] (reset! server (http-server/run-server (fn [req] ;(clojure.pprint/pprint req) (router req)) {:port 8080}))) (defn restart-server [] (stop-server) (start-server)) (comment (restart-server)) (defn -main [& _] (start-server))