Index: lams_learning/web/includes/javascript/presence.js =================================================================== diff -u -r6d721a0e00cff50aeec869b5399b5d2a49c54fa4 -ra7abd606c1cbadff976b75ab062f1466358f8c96 --- lams_learning/web/includes/javascript/presence.js (.../presence.js) (revision 6d721a0e00cff50aeec869b5399b5d2a49c54fa4) +++ lams_learning/web/includes/javascript/presence.js (.../presence.js) (revision a7abd606c1cbadff976b75ab062f1466358f8c96) @@ -98,12 +98,17 @@ presenceWebsocketPingTimeout = null, presenceWebsocketPingFunc = null; + presenceWebsocket.onclose = function(e){ + // react only on abnormal close + if (e.code === 1006 && + Date.now() - presenceWebsocketInitTime > 1000) { + location.reload(); + } + }; + presenceWebsocketPingFunc = function(skipPing){ if (presenceWebsocket.readyState == presenceWebsocket.CLOSING || presenceWebsocket.readyState == presenceWebsocket.CLOSED) { - if (Date.now() - presenceWebsocketInitTime < 1000) { return; - } - location.reload(); } // check and ping every 3 minutes @@ -116,13 +121,7 @@ // set up timer for the first time presenceWebsocketPingFunc(true); - presenceWebsocket.onclose = function(e){ - // react only on abnormal close - if (e.code === 1006 && - Date.now() - presenceWebsocketInitTime > 1000) { - location.reload(); - } - }; + // when the server pushes new messages and roster to the learner's browser presenceWebsocket.onmessage = function(e){ // reset ping timer