Basic TCP/UDP socket handlers.
Basic TCP/UDP socket handlers.
(handler:tcp-socket {:keys [socket-opts output-fn]
:or {output-fn (utils/format-signal-fn)}})
Experimental, subject to change.
Returns a signal handler that:
Can output signals as human or machine-readable (edn, JSON) strings.
Options:
:output-fn
- (fn [signal]) => string, see format-signal-fn
or pr-signal-fn
:socket-opts
- {:keys [host port ssl? connect-timeout-msecs]}
:host
- Destination TCP socket hostname string
:port
- Destination TCP socket port int
:ssl?
- Use SSL/TLS (default false)
:connect-timeout-msecs
- Connection timeout (default 3000 msecs)
Limitations:
Experimental, subject to change. Returns a signal handler that: - Takes a Telemere signal (map). - Sends the signal as a string to specified TCP socket. Can output signals as human or machine-readable (edn, JSON) strings. Options: `:output-fn` - (fn [signal]) => string, see `format-signal-fn` or `pr-signal-fn` `:socket-opts` - {:keys [host port ssl? connect-timeout-msecs]} `:host` - Destination TCP socket hostname string `:port` - Destination TCP socket port int `:ssl?` - Use SSL/TLS (default false) `:connect-timeout-msecs` - Connection timeout (default 3000 msecs) Limitations: - Failed writes will be retried only once. - Writes lock on a single underlying socket, so IO won't benefit from adding extra handler threads. Let me know if there's demand for socket pooling.
(handler:udp-socket {:keys [socket-opts output-fn truncation-warning-fn]
:or {socket-opts {:max-packet-bytes 512}
output-fn (utils/format-signal-fn)}})
Highly experimental, subject to change. Feedback very welcome!
Returns a signal handler that:
Can output signals as human or machine-readable (edn, JSON) strings.
Options:
:output-fn
- (fn [signal]) => string, see format-signal-fn
or pr-signal-fn
:socket-opts
- {:keys [host port max-packet-bytes]}
:host
- Destination UDP socket hostname string
:port
- Destination UDP socket port int
:max-packet-bytes
- Max packet size (in bytes) before truncating output (default 512)
:truncation-warning-fn
Optional (fn [{:keys [max actual signal]}]) to call whenever output is truncated.
Should be appropriately rate-limited!
Limitations:
max-packet-bytes
!Highly experimental, subject to change. Feedback very welcome! Returns a signal handler that: - Takes a Telemere signal (map). - Sends the signal as a string to specified UDP socket. Can output signals as human or machine-readable (edn, JSON) strings. Options: `:output-fn` - (fn [signal]) => string, see `format-signal-fn` or `pr-signal-fn` `:socket-opts` - {:keys [host port max-packet-bytes]} `:host` - Destination UDP socket hostname string `:port` - Destination UDP socket port int `:max-packet-bytes` - Max packet size (in bytes) before truncating output (default 512) `:truncation-warning-fn` Optional (fn [{:keys [max actual signal]}]) to call whenever output is truncated. Should be appropriately rate-limited! Limitations: - Due to UDP limitations, truncates output to `max-packet-bytes`! - Failed writes will be retried only once. - Writes lock on a single underlying socket, so IO won't benefit from adding extra handler threads. Let me know if there's demand for socket pooling. - No DTLS (Datagram Transport Layer Security) support, please let me know if there's demand.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close