From 3de8274f7451d402d342f327b174672eaf0724e3 Mon Sep 17 00:00:00 2001 From: Jeff Rose Date: Tue, 18 Jan 2022 22:24:58 -0700 Subject: [PATCH 1/2] Made most minimal modifications possible to enable binary support. --- src/taoensso/sente.cljc | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/src/taoensso/sente.cljc b/src/taoensso/sente.cljc index 88d0823..13e1302 100644 --- a/src/taoensso/sente.cljc +++ b/src/taoensso/sente.cljc @@ -204,37 +204,24 @@ ;; * Packing includes ->str encoding, and may incl. wrapping to carry cb info. (defn- unpack "prefixed-pstr->[clj ?cb-uuid]" - [packer prefixed-pstr] - (have? string? prefixed-pstr) - (let [wrapped? (enc/str-starts-with? prefixed-pstr "+") - pstr (subs prefixed-pstr 1) - clj + [packer pstr] + (let [[clj ?cb-uuid] (try (interfaces/unpack packer pstr) (catch #?(:clj Throwable :cljs :default) t (debugf "Bad package: %s (%s)" pstr t) [:chsk/bad-package pstr])) - - [clj ?cb-uuid] (if wrapped? clj [clj nil]) ?cb-uuid (if (= 0 ?cb-uuid) :ajax-cb ?cb-uuid)] - - (tracef "Unpacking: %s -> %s" prefixed-pstr [clj ?cb-uuid]) [clj ?cb-uuid])) (defn- pack "clj->prefixed-pstr" ([packer clj] - (let [;; "-" prefix => Unwrapped (has no callback) - pstr (str "-" (interfaces/pack packer clj))] - (tracef "Packing (unwrapped): %s -> %s" clj pstr) - pstr)) + (pack packer clj nil)) ([packer clj ?cb-uuid] - (let [;;; Keep wrapping as light as possible: - ?cb-uuid (if (= ?cb-uuid :ajax-cb) 0 ?cb-uuid) - wrapped-clj (if ?cb-uuid [clj ?cb-uuid] [clj]) - ;; "+" prefix => Wrapped (has callback) - pstr (str "+" (interfaces/pack packer wrapped-clj))] - (tracef "Packing (wrapped): %s -> %s" wrapped-clj pstr) + (let [?cb-uuid (if (= ?cb-uuid :ajax-cb) 0 ?cb-uuid) + wrapped-clj [clj ?cb-uuid] + pstr (interfaces/pack packer wrapped-clj)] pstr))) (deftype EdnPacker [] @@ -688,9 +675,9 @@ handshake-ev (if (nil? ?handshake-data) ; Micro optimization [:chsk/handshake [uid nil]] - [:chsk/handshake [uid nil ?handshake-data]])] - (interfaces/sch-send! server-ch websocket? - (pack packer handshake-ev))))] + [:chsk/handshake [uid nil ?handshake-data]]) + msg (pack packer handshake-ev)] + (interfaces/sch-send! server-ch websocket? msg)))] (enc/cond @@ -1095,6 +1082,7 @@ (aset "onerror" onerror-fn) (aset "onmessage" onmessage-fn) ; Nb receives both push & cb evs! ;; Fires repeatedly (on each connection attempt) while server is down: + (aset "binaryType" "arraybuffer") (aset "onclose" onclose-fn)) socket)))) From 577462b0695a64118643325b7d670abc7f99b843 Mon Sep 17 00:00:00 2001 From: Jeff Rose Date: Thu, 20 Jan 2022 13:48:57 -0700 Subject: [PATCH 2/2] adding deps.edn for github deps to work --- deps.edn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 deps.edn diff --git a/deps.edn b/deps.edn new file mode 100644 index 0000000..631e683 --- /dev/null +++ b/deps.edn @@ -0,0 +1,7 @@ +{:deps + {org.clojure/core.async {:mvn/version "1.3.610"} + com.taoensso/encore {:mvn/version "3.12.1"} + org.java-websocket/Java-WebSocket {:mvn/version "1.5.1"} + org.clojure/tools.reader {:mvn/version "1.3.5"} + com.taoensso/timbre {:mvn/version "5.1.2"}} + }