From 17f15b797bc80ad6c862953a246f4bc939a879e9 Mon Sep 17 00:00:00 2001 From: gered Date: Sat, 27 Dec 2014 17:41:28 -0500 Subject: [PATCH] change some default connection/timeout settings --- .../clj_browserchannel_messaging/server.clj | 31 +++++++++++-------- .../clj_browserchannel_messaging/client.cljs | 2 ++ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/clj/clj_browserchannel_messaging/server.clj b/src/clj/clj_browserchannel_messaging/server.clj index d06f2b8..de9fae3 100644 --- a/src/clj/clj_browserchannel_messaging/server.clj +++ b/src/clj/clj_browserchannel_messaging/server.clj @@ -78,22 +78,27 @@ You can specify the same set of options that net.thegeez.browserchannel/wrap-browserchannel accepts, except for :on-session (which will be overridden even if you do try to pass it). - See net.thegeez.browserchannel/default-options for more info. - Note that if :base is not specified, the default is '/browserchannel' - (this differs from net.thegeez.browserchannel/wrap-browserchannel). + See net.thegeez.browserchannel/default-options for more info on available + options and what the defaults are. Some defaults are different when + using this middleware: - In addition, you can pass event handler functions. Note that the return - value for all of these handlers is not used." + :base \"/browserchannel\" + :keep-alive-interval 20 + :session-timeout-interval 30" [handler & [opts]] - (-> handler - (browserchannel/wrap-browserchannel - (assoc - opts - :base (or (:base opts) "/browserchannel") - :on-session - (fn [browserchannel-session-id request] - (handle-session browserchannel-session-id request)))))) + (let [opts (merge + {:base "/browserchannel" + :keep-alive-interval 20 + :session-timeout-interval 30} + opts)] + (-> handler + (browserchannel/wrap-browserchannel + (assoc + opts + :on-session + (fn [browserchannel-session-id request] + (handle-session browserchannel-session-id request))))))) (defn init! "Sets up browserchannel for server-side use. This function should be called diff --git a/src/cljs/clj_browserchannel_messaging/client.cljs b/src/cljs/clj_browserchannel_messaging/client.cljs index a98f57a..b0bab6b 100644 --- a/src/cljs/clj_browserchannel_messaging/client.cljs +++ b/src/cljs/clj_browserchannel_messaging/client.cljs @@ -176,6 +176,8 @@ (.disconnect browser-channel) (events/removeAll))) (set-debug-logger! goog.debug.Logger.Level.OFF) + ; this seems to help prevent premature session timeouts from occuring (vs the default of 3) + (set! goog.net.BrowserChannel/BACK_CHANNEL_MAX_RETRIES 20) (.setHandler browser-channel (->handler)) (.connect browser-channel (str base "/test")