mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-18 02:01:11 +00:00
49 lines
No EOL
6.1 KiB
HTML
49 lines
No EOL
6.1 KiB
HTML
<!DOCTYPE html PUBLIC ""
|
|
"">
|
|
<html><head><meta charset="UTF-8" /><title>taoensso.telemere.sockets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Telemere</span> <span class="project-version">1.0.0-beta24</span></span></a></h1><div id="langs"><div class="lang current">clj</div><div class="lang"><a href="index.cljs.html">cljs</a></div></div></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>taoensso</span></div></div></li><li class="depth-2"><a href="taoensso.telemere.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>telemere</span></div></a></li><li class="depth-3 branch"><a href="taoensso.telemere.open-telemetry.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>open-telemetry</span></div></a></li><li class="depth-3 branch"><a href="taoensso.telemere.postal.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>postal</span></div></a></li><li class="depth-3 branch"><a href="taoensso.telemere.slack.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>slack</span></div></a></li><li class="depth-3 branch current"><a href="taoensso.telemere.sockets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>sockets</span></div></a></li><li class="depth-3 branch"><a href="taoensso.telemere.streams.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>streams</span></div></a></li><li class="depth-3 branch"><a href="taoensso.telemere.timbre.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>timbre</span></div></a></li><li class="depth-3 branch"><a href="taoensso.telemere.tools-logging.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>tools-logging</span></div></a></li><li class="depth-3"><a href="taoensso.telemere.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="taoensso.telemere.sockets.html#var-handler.3Atcp-socket"><div class="inner"><span>handler:tcp-socket</span></div></a></li><li class="depth-1"><a href="taoensso.telemere.sockets.html#var-handler.3Audp-socket"><div class="inner"><span>handler:udp-socket</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">taoensso.telemere.sockets</h1><div class="doc"><pre class="plaintext">Basic TCP/UDP socket handlers.
|
|
</pre></div><div class="public anchor" id="var-handler.3Atcp-socket"><h3>handler:tcp-socket</h3><h4 class="lang current">clj</h4><div class="usage"><code>(handler:tcp-socket {:keys [socket-opts output-fn], :or {output-fn (utils/format-signal-fn)}})</code></div><div class="doc"><pre class="plaintext">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.</pre></div></div><div class="public anchor" id="var-handler.3Audp-socket"><h3>handler:udp-socket</h3><h4 class="lang current">clj</h4><div class="usage"><code>(handler:udp-socket {:keys [socket-opts output-fn truncation-warning-fn], :or {socket-opts {:max-packet-bytes 512}, output-fn (utils/format-signal-fn)}})</code></div><div class="doc"><pre class="plaintext">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.</pre></div></div></div></body></html> |