Index: lams_tool_leader/web/pages/learning/leaderselection.jsp =================================================================== diff -u -r6d721a0e00cff50aeec869b5399b5d2a49c54fa4 -ra7abd606c1cbadff976b75ab062f1466358f8c96 --- lams_tool_leader/web/pages/learning/leaderselection.jsp (.../leaderselection.jsp) (revision 6d721a0e00cff50aeec869b5399b5d2a49c54fa4) +++ lams_tool_leader/web/pages/learning/leaderselection.jsp (.../leaderselection.jsp) (revision a7abd606c1cbadff976b75ab062f1466358f8c96) @@ -32,14 +32,19 @@ + 'learningWebsocket?toolSessionID=' + ${toolSessionID}), leaderWebsocketPingTimeout = null, leaderWebsocketPingFunc = null; - + + leaderWebsocket.onclose = function(e){ + // react only on abnormal close + if (e.code === 1006 && + Date.now() - leaderWebsocketInitTime > 1000) { + location.reload(); + } + }; + leaderWebsocketPingFunc = function(skipPing){ if (leaderWebsocket.readyState == leaderWebsocket.CLOSING || leaderWebsocket.readyState == leaderWebsocket.CLOSED){ - if (Date.now() - leaderWebsocketInitTime < 1000) { - return; - } - location.reload(); + return; } // check and ping every 3 minutes @@ -49,17 +54,11 @@ leaderWebsocket.send("ping"); } }; + // set up timer for the first time leaderWebsocketPingFunc(true); + - leaderWebsocket.onclose = function(e){ - // react only on abnormal close - if (e.code === 1006 && - Date.now() - leaderWebsocketInitTime > 1000) { - location.reload(); - } - }; - // run when the leader has just been selected leaderWebsocket.onmessage = function(e) { // no need to reset ping timer as the only possible message is page refresh