Compojure 是一個基於 ring 的上層web開發框架。在 lein new compojure my-app 生成的項目中,默認是啓用 jetty 服務器的,最近用到了 http-kit 中的 websocket, 因此須要將服務器改成 http-kit 的。其實很簡單,只要將 run-jetty 替換爲 run-server 便可。二者的參數是同樣的:web
(run-jetty app options) (run-server app options)
更改以後要注意兩點:服務器
1.1 啓動websocket
以前的啓動能夠 lein ring server 直接啓動起來,並且默認支持熱代碼更新的。可是改爲 http-kit 以後,須要 lein run。app
; 以前是 lein ring server
; 改動後 lein run
1.2 代碼熱更新框架
上述配置以後,代碼是不會熱更新的。若是要支持代碼熱更新,須要使用 ring.middleware.reload 來手動配置一下:socket
(defn -main [& args] ;; 入口函數 (let [handler (reload/wrap-reload (site #'all-routes))] ;reload/wrap-reload 中間件就是熱更新的功能 (run-server handler {:port 8080}))) ; run-server 來使用 http-kit