-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
awb99
committed
Nov 25, 2024
1 parent
13ae4ed
commit dcce2b9
Showing
18 changed files
with
88 additions
and
94 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
(ns modular.webserver.server | ||
(:require | ||
[taoensso.timbre :as timbre :refer [info error]] | ||
[modular.webserver.server.jetty :as jetty] | ||
[modular.webserver.server.httpkit :as httpkit])) | ||
|
||
(defn start [webserver-config ring-handler server-type] | ||
(let [server (case server-type | ||
:jetty (jetty/start-jetty ring-handler webserver-config) | ||
:httpkit (httpkit/start-httpkit ring-handler webserver-config) | ||
(do (error "start-server failed: server type not found: " type) | ||
nil))] | ||
{:server-type server-type | ||
:server server})) | ||
|
||
(defn stop [{:keys [server server-type]}] | ||
(when server | ||
(case server-type | ||
:jetty (jetty/stop-jetty server) | ||
:httpkit (httpkit/stop-httpkit server) | ||
(info "there was no server started.")))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
(ns modular.webserver.server.httpkit | ||
(:require | ||
[taoensso.timbre :as timbre :refer [info]])) | ||
|
||
; http://http-kit.github.io/ | ||
;https://github.com/http-kit/http-kit | ||
; this dependency is not part of webly dependencies: ;{http-kit "2.5.3"} | ||
|
||
(defn start-httpkit | ||
[ring-handler config] | ||
(let [run-server (requiring-resolve 'org.httpkit.server/run-server) | ||
default-opts {:allow-null-path-info true ; omit the trailing slash from your URLs | ||
:ws-max-idle-time 3600000 ; important for nrepl middleware | ||
} | ||
{:keys [port]} config] | ||
(info "Starting Httpkit web server (http:" port ")") | ||
(run-server ring-handler {:port port | ||
:host "0.0.0.0"}))) | ||
|
||
(defn stop-httpkit [server] | ||
(info "stopping httpkit server..") | ||
;(server) ; Immediate shutdown (breaks existing reqs) | ||
;; Graceful shutdown (wait <=100 msecs for existing reqs to complete): | ||
(server :timeout 100)) |
29 changes: 20 additions & 9 deletions
29
src/modular/webserver/jetty.clj → src/modular/webserver/server/jetty.clj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,38 @@ | ||
(ns modular.webserver.jetty | ||
(ns modular.webserver.server.jetty | ||
(:require | ||
[clojure.java.io :as io] | ||
[taoensso.timbre :as timbre :refer [info]] | ||
[ring.adapter.jetty9 :refer [run-jetty]])) | ||
;[ring.adapter.jetty9 :refer [run-jetty]] | ||
[ring.adapter.jetty :refer [run-jetty]])) | ||
|
||
(defn run-jetty-server [ring-handler ws-map user-opts] | ||
(defn run-jetty-server [ring-handler {:keys [port ssl-port keystore] :as user-opts}] | ||
(let [default-opts {:allow-null-path-info true ; omit the trailing slash from your URLs | ||
:ws-max-idle-time 3600000 ; important for nrepl middleware | ||
} | ||
ws-opts (if ws-map | ||
{:websockets ws-map} ; {"/api/chsk" (wrap-webly (partial ws-handshake-handler conn))} | ||
{}) | ||
{:keys [port ssl-port keystore]} user-opts | ||
https? (and | ||
ssl-port | ||
keystore | ||
(.exists (io/file keystore))) | ||
user-opts (if https? | ||
user-opts | ||
(dissoc user-opts :keystore :ssl-port :key-password))] | ||
(dissoc user-opts :keystore :ssl-port :key-password)) | ||
|
||
opts (merge default-opts ;ws-opts | ||
user-opts)] | ||
; https://github.com/sunng87/ring-jetty9-adapter | ||
(if https? | ||
(info "Starting Jetty web server (http:" port "https:" ssl-port ")") | ||
(info "Starting Jetty web server (http:" port "https: none)")) | ||
(run-jetty ring-handler (merge default-opts ws-opts user-opts)))) | ||
(run-jetty ring-handler opts))) | ||
|
||
(defn start-jetty | ||
[ring-handler config] | ||
(run-jetty-server ring-handler | ||
(assoc config :join? false))) | ||
|
||
(defn stop-jetty | ||
[server] | ||
;https://github.com/dharrigan/websockets/blob/master/src/online/harrigan/api/router.clj | ||
(info "stopping jetty-server..") | ||
(.stop server) ; stop is async | ||
(.join server)) ; so let's make sure it's really stopped! |
This file was deleted.
Oops, something went wrong.