Adapter for the Jetty 9 server, with websocket + core.async support. Derived from ring.adapter.jetty
Adapter for the Jetty 9 server, with websocket + core.async support. Derived from ring.adapter.jetty
(run-jetty {:as options
:keys [websocket-handler ring-handler host port accept-queue-size
max-threads min-threads input-buffer-size max-idle-time
ssl-port configurator parser-compliance daemon? ssl? join?
http2? http2c? keystore-scan-interval-secs]
:or {max-threads 50
max-idle-time 200000
input-buffer-size 8192
accept-queue-size 0
keystore-scan-interval-secs (* 60 60 24)
parser-compliance HttpCompliance/LEGACY
port 80
min-threads 8
join? true
daemon? false
ssl? false}})Start a Jetty webserver to serve the given handler according to the supplied options:
:port - the port to listen on (defaults to 80), can be a sequence:host - the hostname to listen on:join? - blocks the thread until server ends (defaults to true):http2? - enable HTTP2 transport:http2c? - enable HTTP2C transport (cleartext):configurator - fn that will be passed the server instance before server.start():daemon? - use daemon threads (defaults to false):ssl? - allow connections over HTTPS:ssl-port - the SSL port to listen on (defaults to 443, implies :ssl?):keystore - the keystore to use for SSL connections:keystore-type - the format of keystore:keystore-scan-interval-secs - the scanning interval to detect changes to and reload the keystore:key-password - the password to the keystore:truststore - a truststore to use for SSL connections:truststore-type - the format of trust store:trust-password - the password to the truststore:accept-queue-size - the accept queue size (also known as accept backlog):max-threads - the maximum number of threads to use (default 50):min-threads - the minimum number of threads to use (default 8):max-idle-time - the maximum idle time in milliseconds for a connection (default 200000):ws-max-idle-time - the maximum idle time in milliseconds for a websocket connection (default 500000):client-auth - SSL client certificate authenticate, may be set to :need, :want or :none (defaults to :none):output-buffer-size - (default 32768):input-buffer-size - (default 8192):request-header-size - (default 8192):response-header-size - (default 8192):send-server-version? - (default true):send-date-header? - (default false):header-cache-size - (default 512):websocket-handler - a handler function that will receive a RING request map with the following keys added:
:in: core.async chan that receives data sent by the client:out: core async chan you can use to send data to client:ctrl: core.async chan that received control messages such as: [::error e], [::close code reason]:websocket-acceptor: a function called with (request response) that returns a boolean whether to further process the
websocket request. If the function returns false, it is responsible for committing a response.
If the function return true, a websocket is created and the websocket-handler is eventually
called.Start a Jetty webserver to serve the given handler according to the
supplied options:
* `:port` - the port to listen on (defaults to 80), can be a sequence
* `:host` - the hostname to listen on
* `:join?` - blocks the thread until server ends (defaults to true)
* `:http2?` - enable HTTP2 transport
* `:http2c?` - enable HTTP2C transport (cleartext)
* `:configurator` - fn that will be passed the server instance before server.start()
* `:daemon?` - use daemon threads (defaults to false)
* `:ssl?` - allow connections over HTTPS
* `:ssl-port` - the SSL port to listen on (defaults to 443, implies :ssl?)
* `:keystore` - the keystore to use for SSL connections
* `:keystore-type` - the format of keystore
* `:keystore-scan-interval-secs` - the scanning interval to detect changes to and reload the keystore
* `:key-password` - the password to the keystore
* `:truststore` - a truststore to use for SSL connections
* `:truststore-type` - the format of trust store
* `:trust-password` - the password to the truststore
* `:accept-queue-size` - the accept queue size (also known as accept backlog)
* `:max-threads` - the maximum number of threads to use (default 50)
* `:min-threads` - the minimum number of threads to use (default 8)
* `:max-idle-time` - the maximum idle time in milliseconds for a connection (default 200000)
* `:ws-max-idle-time` - the maximum idle time in milliseconds for a websocket connection (default 500000)
* `:client-auth` - SSL client certificate authenticate, may be set to :need, :want or :none (defaults to :none)
* `:output-buffer-size` - (default 32768)
* `:input-buffer-size` - (default 8192)
* `:request-header-size` - (default 8192)
* `:response-header-size` - (default 8192)
* `:send-server-version?` - (default true)
* `:send-date-header?` - (default false)
* `:header-cache-size` - (default 512)
* `:websocket-handler` - a handler function that will receive a RING request map with the following keys added:
* `:in`: core.async chan that receives data sent by the client
* `:out`: core async chan you can use to send data to client
* `:ctrl`: core.async chan that received control messages such as: `[::error e]`, `[::close code reason]`
* `:websocket-acceptor`: a function called with (request response) that returns a boolean whether to further process the
websocket request. If the function returns false, it is responsible for committing a response.
If the function return true, a websocket is created and the `websocket-handler` is eventually
called.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |