Index: lams_learning/web/includes/javascript/presence.js =================================================================== diff -u -r4583983b64efe1d91fbb47cdde6a759a6a30e859 -r6d721a0e00cff50aeec869b5399b5d2a49c54fa4 --- lams_learning/web/includes/javascript/presence.js (.../presence.js) (revision 4583983b64efe1d91fbb47cdde6a759a6a30e859) +++ lams_learning/web/includes/javascript/presence.js (.../presence.js) (revision 6d721a0e00cff50aeec869b5399b5d2a49c54fa4) @@ -90,16 +90,19 @@ } }, + presenceWebsocketInitTime = Date.now(), // init the connection with server using server URL but with different protocol presenceWebsocket = new WebSocket(APP_URL.replace('http', 'ws') + 'presenceChatWebsocket?lessonID=' + lessonId - + '&imEnabled=' + presenceImEnabled - + '&nickname=' + encodeURIComponent(nickname)), + + '&imEnabled=' + presenceImEnabled + + '&nickname=' + encodeURIComponent(nickname)), presenceWebsocketPingTimeout = null, presenceWebsocketPingFunc = null; presenceWebsocketPingFunc = function(skipPing){ - if (presenceWebsocket.readyState == presenceWebsocket.CLOSING - || presenceWebsocket.readyState == presenceWebsocket.CLOSED){ + if (presenceWebsocket.readyState == presenceWebsocket.CLOSING || presenceWebsocket.readyState == presenceWebsocket.CLOSED) { + if (Date.now() - presenceWebsocketInitTime < 1000) { + return; + } location.reload(); } @@ -115,7 +118,8 @@ presenceWebsocket.onclose = function(e){ // react only on abnormal close - if (e.code === 1006) { + if (e.code === 1006 && + Date.now() - presenceWebsocketInitTime > 1000) { location.reload(); } };