使用 httpkit 來替代 jetty

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
相關文章
相關標籤/搜索