From ac132932cdd6b2e294fabcaf7460ee16dae56295 Mon Sep 17 00:00:00 2001 From: Michal Pisanko Date: Mon, 26 Aug 2024 20:45:29 +0200 Subject: [PATCH] enable publishing - so we can publish (on an interval - 2mins?) prices consider if all prices or only those asked for --- .../src/reference_service/web/socket.clj | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/reference-service/src/reference_service/web/socket.clj b/reference-service/src/reference_service/web/socket.clj index 9bd2a0e2..09880a0f 100644 --- a/reference-service/src/reference_service/web/socket.clj +++ b/reference-service/src/reference_service/web/socket.clj @@ -32,6 +32,19 @@ (.disconnect ^Socket socket) (reset! client {:connected? false})))) +(defn publish + [topic payload] + (let [{:keys [socket connected?]} @client] + (when (and socket + connected?) + (.emit ^Socket socket + "publish" + (to-array + [(json/write-value-as-string + {:topic (str "/" topic) + :payload payload + :type topic})]))))) + (defn connect [jdbc-ds uri] (disconnect client) @@ -79,3 +92,14 @@ [jdbc-ds uri] (connect jdbc-ds uri) client) + +(comment + (def sock (connect nil "http://localhost:18086")) + (.emit ^Socket sock + "publish" + (to-array [(json/write-value-as-string + {:topic "/prices" + :payload {:ticker "AAPL" + :price 100} + :type "Price"})])) + #_1)