diff --git a/src/taoensso/sente.cljc b/src/taoensso/sente.cljc index 2968085..3db38f8 100644 --- a/src/taoensso/sente.cljc +++ b/src/taoensso/sente.cljc @@ -756,24 +756,21 @@ (send-handshake! server-ch websocket?) - ;; Start ws-kalive loop - ;; This also works to gc ws conns that were suddenly - ;; terminated (e.g. by turning on airplane mode) + ;; Start server-side ws-kalive loop + ;; Also helps server detect broken conns earlier (when-let [ms ws-kalive-ms] (go-loop [udt-t0 udt-open] (client (should auto-close conn if it's - ;; gone dead). - (interfaces/sch-send! server-ch websocket? - (pack packer :chsk/ws-ping))) - (recur udt-t1)))))) + ;; Ref. #230 + ;; No conn send/recv activity w/in kalive window + ;; so send ping to client. Should trigger close + ;; if conn is broken. + (interfaces/sch-send! server-ch websocket? + (pack packer :chsk/ws-ping))) + (recur udt-t1)))))) ;; Ajax handshake/poll (let [_ (tracef "New Ajax handshake/poll: %s (%s)" uid sch-uuid) @@ -791,10 +788,8 @@ (when-let [ms lp-timeout-ms] (go (server (should auto-close conn if it's - ;; gone dead). The server generally sends pings so - ;; this should be rare. Mostly here to help clients - ;; identify conns that were suddenly dropped. - + ;; Ref. #259 + ;; No conn send/recv activity w/in kalive window + ;; so send ping to server. Should trigger close + ;; if conn is broken. (-chsk-send! chsk [:chsk/ws-ping] {:flush? true}))) (recur)))))