Skip to content

Commit 446be84

Browse files
committed
[nop] Misc housekeeping
1 parent 8e9ea7d commit 446be84

File tree

3 files changed

+52
-56
lines changed

3 files changed

+52
-56
lines changed

src/taoensso/sente.cljc

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,10 @@
8080
(:require
8181
[clojure.string :as str]
8282
[clojure.core.async :as async :refer [<! >! put! chan go go-loop]]
83-
[taoensso.encore :as enc :refer [have have! have? swap-in! reset-in! swapped]]
83+
[taoensso.encore :as enc :refer [swap-in! reset-in! swapped]]
84+
[taoensso.truss :as truss]
8485
[taoensso.timbre :as timbre]
85-
[taoensso.sente.interfaces :as interfaces])
86+
[taoensso.sente.interfaces :as i])
8687

8788
#?(:cljs (:require-macros [taoensso.sente :as sente-macros :refer [elide-require]]))
8889
#?(:clj (:import [org.java_websocket.client WebSocketClient])))
@@ -207,7 +208,7 @@
207208
[packer packed]
208209
(let [[clj ?cb-uuid]
209210
(try
210-
(interfaces/unpack packer packed)
211+
(i/unpack packer packed)
211212
(catch #?(:clj Throwable :cljs :default) t
212213
(timbre/errorf t "Failed to unpack: %s" packed)
213214
[[:chsk/bad-package packed] nil]))
@@ -220,7 +221,7 @@
220221
"[clj ?cb-uuid]->packed"
221222
([packer clj ] (pack packer clj nil))
222223
([packer clj ?cb-uuid]
223-
(interfaces/pack packer
224+
(i/pack packer
224225
(if-some [cb-uuid (if (= ?cb-uuid :ajax-cb) 0 ?cb-uuid)]
225226
[clj cb-uuid]
226227
[clj ]))))
@@ -230,7 +231,7 @@
230231
(pack default-edn-packer [:foo])))
231232

232233
(deftype EdnPacker []
233-
interfaces/IPacker
234+
i/IPacker
234235
(pack [_ x] (enc/pr-edn x))
235236
(unpack [_ s] (enc/read-edn s)))
236237

@@ -239,15 +240,15 @@
239240
(defn- coerce-packer [x]
240241
(if (= x :edn)
241242
default-edn-packer
242-
(have #(satisfies? interfaces/IPacker %) x)))
243+
(truss/have #(satisfies? i/IPacker %) x)))
243244

244245
(comment
245246
(do
246247
(require '[taoensso.sente.packers.transit :as transit])
247248
(def ^:private default-transit-json-packer (transit/get-transit-packer)))
248249

249-
(let [pack interfaces/pack
250-
unpack interfaces/unpack
250+
(let [pack i/pack
251+
unpack i/unpack
251252
data {:a :A :b :B :c "hello world"}]
252253

253254
(enc/qb 1e4 ; [111.96 67.26]
@@ -405,8 +406,8 @@
405406
packer :edn
406407
allowed-origins :all}}]]
407408

408-
(have? enc/pos-int? send-buf-ms-ajax send-buf-ms-ws)
409-
(have? #(satisfies? interfaces/IServerChanAdapter %) web-server-ch-adapter)
409+
(truss/have? enc/pos-int? send-buf-ms-ajax send-buf-ms-ws)
410+
(truss/have? #(satisfies? i/IServerChanAdapter %) web-server-ch-adapter)
410411

411412
(let [max-ms default-client-side-ajax-timeout-ms]
412413
(when (>= lp-timeout-ms max-ms)
@@ -415,7 +416,7 @@
415416
{:lp-timeout-ms lp-timeout-ms
416417
:default-client-side-ajax-timeout-ms max-ms}))))
417418

418-
(let [allowed-origins (have [:or set? #{:all}] allowed-origins)
419+
(let [allowed-origins (truss/have [:or set? #{:all}] allowed-origins)
419420
packer (coerce-packer packer)
420421
ch-recv (chan recv-buf-or-n)
421422

@@ -430,7 +431,7 @@
430431
connected-uids_ (atom {:ws #{} :ajax #{} :any #{}}) ; Public
431432

432433
connect-uid!?
433-
(fn [conn-type uid] {:pre [(have? uid)]}
434+
(fn [conn-type uid] {:pre [(truss/have? uid)]}
434435
(let [newly-connected?
435436
(swap-in! connected-uids_ []
436437
(fn [{:keys [ws ajax any] :as old-m}]
@@ -447,7 +448,7 @@
447448
newly-connected?))
448449

449450
maybe-disconnect-uid!?
450-
(fn [uid] {:pre [(have? uid)]}
451+
(fn [uid] {:pre [(truss/have? uid)]}
451452
(let [newly-disconnected?
452453
(swap-in! connected-uids_ []
453454
(fn [{:keys [ws ajax any] :as old-m}]
@@ -501,8 +502,8 @@
501502
(swapped m nil)))))]
502503

503504
(let [[buffered-evs ev-uuids] pulled]
504-
(have? vector? buffered-evs)
505-
(have? set? ev-uuids)
505+
(truss/have? vector? buffered-evs)
506+
(truss/have? set? ev-uuids)
506507

507508
(let [packed-buffered-evs (pack packer buffered-evs)]
508509
(send-buffered-server-evs>clients! conn-type
@@ -516,10 +517,10 @@
516517
(flush-buffer! :ajax))
517518

518519
(doseq [[?sch _udt] (vals (get-in @conns_ [:ws uid]))]
519-
(when-let [sch ?sch] (interfaces/sch-close! sch)))
520+
(when-let [sch ?sch] (i/sch-close! sch)))
520521

521522
(doseq [[?sch _udt] (vals (get-in @conns_ [:ajax uid]))]
522-
(when-let [sch ?sch] (interfaces/sch-close! sch))))
523+
(when-let [sch ?sch] (i/sch-close! sch))))
523524

524525
(do
525526
;; Buffer event
@@ -622,7 +623,7 @@
622623
(enc/cond
623624
:if-let [resp (possible-rejection-resp ring-req)] resp
624625
:else
625-
(interfaces/ring-req->server-ch-resp web-server-ch-adapter ring-req
626+
(i/ring-req->server-ch-resp web-server-ch-adapter ring-req
626627
{:ring-async-resp-fn ?ring-async-resp-fn
627628
:ring-async-raise-fn ?ring-async-raise-fn
628629

@@ -641,7 +642,7 @@
641642
(lid (user-id-fn ring-req client-id) client-id)
642643
resp-clj)
643644

644-
(interfaces/sch-send! server-ch websocket?
645+
(i/sch-send! server-ch websocket?
645646
(pack packer resp-clj)))))]
646647

647648
(put-server-event-msg>ch-recv! ch-recv
@@ -704,7 +705,7 @@
704705
[:chsk/handshake [uid nil]]
705706
[:chsk/handshake [uid nil ?handshake-data]])]
706707
;; Returns true iff server-ch open during call
707-
(interfaces/sch-send! server-ch websocket?
708+
(i/sch-send! server-ch websocket?
708709
(pack packer handshake-ev))))
709710

710711
on-error
@@ -729,7 +730,7 @@
729730
;; Auto reply to ping
730731
(when-let [cb-uuid ?cb-uuid]
731732
(timbre/debugf "[ws/on-msg] Server will auto-reply to ping from %s" lid*)
732-
(interfaces/sch-send! server-ch websocket?
733+
(i/sch-send! server-ch websocket?
733734
(pack packer "pong" cb-uuid)))
734735

735736
(receive-event-msg! clj nil))
@@ -741,7 +742,7 @@
741742
(timbre/debugf "[ws/on-msg] Server will reply to message from %s: %s" lid* resp-clj)
742743

743744
;; true iff apparent success:
744-
(interfaces/sch-send! server-ch websocket?
745+
(i/sch-send! server-ch websocket?
745746
(pack packer resp-clj ?cb-uuid))))))))
746747

747748
on-close
@@ -826,9 +827,9 @@
826827

827828
{:keys [recur? udt ms-timeout expecting-pong? force-close?]}
828829
(enc/cond
829-
(nil? ?conn-entry) {:recur? false}
830-
(not= conn-id conn-id*) {:recur? false}
831-
(when-let [sch ?sch] (not (interfaces/sch-open? sch))) {:recur? false, :force-close? true}
830+
(nil? ?conn-entry) {:recur? false}
831+
(not= conn-id conn-id*) {:recur? false}
832+
(when-let [sch ?sch] (not (i/sch-open? sch))) {:recur? false, :force-close? true}
832833

833834
(not= udt-t0 udt-t1) ; Activity in last kalive window
834835
{:recur? true, :udt udt-t1, :ms-timeout ws-kalive-ms, :expecting-pong? false}
@@ -838,7 +839,7 @@
838839
expecting-pong?
839840
(do
840841
;; Was expecting pong (=> activity) in last kalive window
841-
(interfaces/sch-close! server-ch)
842+
(i/sch-close! server-ch)
842843
{:recur? false})
843844

844845
:else
@@ -847,7 +848,7 @@
847848
;; conn's :on-close immediately, i.e. no need to wait
848849
;; for a missed pong.
849850
ping-apparently-sent?
850-
(interfaces/sch-send! server-ch websocket?
851+
(i/sch-send! server-ch websocket?
851852
(pack packer :chsk/ws-ping))]
852853

853854
(if ws-ping-timeout-ms
@@ -897,14 +898,14 @@
897898
(when-let [[_?sch _udt conn-id*] (get-in @conns_ [:ajax uid client-id])]
898899
(when (= conn-id conn-id*)
899900
(timbre/debugf "[ajax/on-open] Polling timeout for %s" lid*)
900-
(interfaces/sch-send! server-ch websocket?
901+
(i/sch-send! server-ch websocket?
901902
(pack packer :chsk/timeout))))))
902903

903904
(when (connect-uid!? :ajax uid)
904905
(timbre/infof "[ajax/on-open] uid port open for %s" lid*)
905906
(receive-event-msg! [:chsk/uidport-open uid])))))))]
906907

907-
(interfaces/ring-req->server-ch-resp web-server-ch-adapter ring-req
908+
(i/ring-req->server-ch-resp web-server-ch-adapter ring-req
908909
{:ring-async-resp-fn ?ring-async-resp-fn
909910
:ring-async-raise-fn ?ring-async-raise-fn
910911
:on-open on-open
@@ -926,7 +927,7 @@
926927
"Actually pushes buffered events (as packed-str) to all uid's conns.
927928
Allows some time for possible reconnects."
928929
[conn-type conns_ uid packed-buffered-evs n-buffered-evs]
929-
(have? [:el #{:ajax :ws}] conn-type)
930+
(truss/have? [:el #{:ajax :ws}] conn-type)
930931
(let [;; Mean max wait time: sum*1.5 = 2790*1.5 = 4.2s
931932
ms-backoffs [90 180 360 720 720 720] ; => max 1+6 attempts
932933
websocket? (= conn-type :ws)
@@ -942,7 +943,7 @@
942943
(when-let [[?sch _udt conn-id] (get-in @conns_ [conn-type uid client-id])]
943944
(when-let [sch ?sch]
944945
(when-not (simulated-bad-conn?)
945-
(when (interfaces/sch-send! sch websocket? packed-buffered-evs)
946+
(when (i/sch-send! sch websocket? packed-buffered-evs)
946947
conn-id))))]
947948

948949
(swap-in! conns_ [conn-type uid client-id]
@@ -1072,8 +1073,8 @@
10721073
open-changed?)))))
10731074

10741075
(defn- chsk-state->closed [state reason]
1075-
(have? map? state)
1076-
(have?
1076+
(truss/have? map? state)
1077+
(truss/have?
10771078
[:el #{:clean :unexpected
10781079
:requested-disconnect
10791080
:requested-reconnect
@@ -1098,7 +1099,7 @@
10981099
(if (or (nil? ?cb) (ifn? ?cb))
10991100
?cb
11001101
(do
1101-
(have? enc/chan? ?cb)
1102+
(truss/have? enc/chan? ?cb)
11021103
(assert-event ev)
11031104
(let [[ev-id _] ev
11041105
cb-ch ?cb]
@@ -1108,7 +1109,7 @@
11081109
reply]))))))
11091110

11101111
(defn- receive-buffered-evs! [chs clj]
1111-
(let [buffered-evs (have vector? clj)]
1112+
(let [buffered-evs (truss/have vector? clj)]
11121113

11131114
(timbre/tracef "Client received %s buffered evs from server: %s"
11141115
(count buffered-evs)
@@ -1125,8 +1126,8 @@
11251126
(let [[x1] x] (= x1 :chsk/handshake))))
11261127

11271128
(defn- receive-handshake! [chsk-type chsk clj]
1128-
(have? [:el #{:ws :ajax}] chsk-type)
1129-
(have? handshake? clj)
1129+
(truss/have? [:el #{:ws :ajax}] chsk-type)
1130+
(truss/have? handshake? clj)
11301131

11311132
(let [[_ [?uid _ ?handshake-data]] clj
11321133
{:keys [chs ever-opened?_]} chsk
@@ -1349,7 +1350,7 @@
13491350
packed (pack packer ev ?cb-uuid)]
13501351

13511352
(when-let [cb-uuid ?cb-uuid]
1352-
(reset-in! cbs-waiting_ [cb-uuid] (have ?cb-fn))
1353+
(reset-in! cbs-waiting_ [cb-uuid] (truss/have ?cb-fn))
13531354
(when-let [timeout-ms ?timeout-ms]
13541355
(go
13551356
(<! (async/timeout timeout-ms))
@@ -1371,7 +1372,7 @@
13711372
(do
13721373
(when-let [cb-uuid ?cb-uuid]
13731374
(let [cb-fn* (or (pull-unused-cb-fn! cbs-waiting_ cb-uuid)
1374-
(have ?cb-fn))]
1375+
(truss/have ?cb-fn))]
13751376
(cb-fn* :chsk/error)))
13761377

13771378
(-chsk-reconnect! chsk :ws-error)
@@ -1792,7 +1793,7 @@
17921793

17931794
(defn- get-chsk-url [protocol host path type]
17941795
(let [protocol (case protocol :http "http:" :https "https:" protocol)
1795-
protocol (have [:el #{"http:" "https:"}] protocol)
1796+
protocol (truss/have [:el #{"http:" "https:"}] protocol)
17961797
protocol (case type
17971798
:ajax protocol
17981799
:ws (case protocol "https:" "wss:" "http:" "ws:"))]
@@ -1855,8 +1856,8 @@
18551856

18561857
_deprecated-more-opts]]
18571858

1858-
(have? [:in #{:ajax :ws :auto}] type)
1859-
(have? enc/nblank-str? client-id)
1859+
(truss/have? [:in #{:ajax :ws :auto}] type)
1860+
(truss/have? enc/nblank-str? client-id)
18601861

18611862
(when (not (nil? _deprecated-more-opts)) (timbre/warnf "`make-channel-socket-client!` fn signature CHANGED with Sente v0.10.0."))
18621863
(when (contains? opts :lp-timeout) (timbre/warnf ":lp-timeout opt has CHANGED; please use :lp-timout-ms."))
@@ -1870,7 +1871,7 @@
18701871
(let [;; Not available with React Native, etc.
18711872
;; Must always provide explicit path for Java client.
18721873
win-loc #?(:clj nil :cljs (enc/get-win-loc))
1873-
path (have (or path (:pathname win-loc)))]
1874+
path (truss/have (or path (:pathname win-loc)))]
18741875

18751876
(if-let [f (:chsk-url-fn opts)] ; Deprecated
18761877
[(f path win-loc :ws)
@@ -2008,8 +2009,8 @@
20082009
(when trace-evs? (timbre/tracef "Chsk router pre-handler event: %s" event))
20092010
(event-msg-handler
20102011
(if server?
2011-
(have! server-event-msg? event-msg)
2012-
(have! client-event-msg? event-msg)))
2012+
(truss/have! server-event-msg? event-msg)
2013+
(truss/have! client-event-msg? event-msg)))
20132014

20142015
(catch :all t1
20152016
(enc/try*

src/taoensso/sente/interfaces.cljc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
(ns taoensso.sente.interfaces
2-
"Alpha, subject to change.
3-
Public interfaces / extension points.
4-
Ref. https://github.com/ptaoussanis/sente/issues/425 for more info."
5-
(:require [taoensso.encore :as enc]))
2+
"Public interfaces / extension points.")
63

74
;;;; Web servers
85

src/taoensso/sente/packers/transit.cljc

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
(ns taoensso.sente.packers.transit
2-
"Alpha - subject to change!
3-
Optional Transit-format[1] IPacker implementation for use with Sente.
2+
"Optional Transit-format[1] IPacker implementation for use with Sente.
43
[1] https://github.com/cognitect/transit-format."
54
{:author "Peter Taoussanis, @ckarlsen84"}
65
(:require
7-
[clojure.string :as str]
8-
[taoensso.encore :as enc :refer [have have! have?]]
9-
[taoensso.timbre :as timbre]
6+
[taoensso.encore :as enc]
7+
[taoensso.truss :as truss]
108
[cognitect.transit :as transit]
119
[taoensso.sente.interfaces :as interfaces
1210
:refer [pack unpack]])
@@ -90,8 +88,8 @@
9088
([transit-fmt] (get-transit-packer transit-fmt {} {}))
9189
([transit-fmt writer-opts reader-opts]
9290
;; No transit-cljs support for msgpack atm
93-
(have? [:el #{:json :json-verbose #_:msgpack}] transit-fmt)
94-
(have? map? writer-opts reader-opts)
91+
(truss/have? [:el #{:json :json-verbose #_:msgpack}] transit-fmt)
92+
(truss/have? map? writer-opts reader-opts)
9593
(TransitPacker. transit-fmt writer-opts reader-opts)))
9694

9795
(comment

0 commit comments

Comments
 (0)