使用 httpkit 來替代 jetty


Compojure 是一個基於 ring 的上層web開發框架。在 lein new compojure my-app 生成的項目中,默認是啟用 jetty 服務器的,最近用到了 http-kit 中的 websocket, 所以需要將服務器改為 http-kit 的。其實很簡單,只要將 run-jetty 替換為 run-server 即可。兩者的參數是一樣的:

(run-jetty app options)

(run-server app options)

更改之后要注意兩點:

1.1 啟動

之前的啟動可以 lein ring server 直接啟動起來,而且默認支持熱代碼更新的。但是改成 http-kit 之后,需要 lein run。

; 之前是

lein ring server

  

; 改動后

lein run

 

1.2 代碼熱更新

上述配置之后,代碼是不會熱更新的。如果要支持代碼熱更新,需要使用 ring.middleware.reload 來手動配置一下:

(defn -main [& args] ;; 入口函數

  (let [handler 

          (reload/wrap-reload (site #'all-routes))] ;reload/wrap-reload 中間件就是熱更新的功能

    (run-server handler {:port 8080}))) ; run-server 來使用 http-kit

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM