diff --git a/awx/ui/static/js/app.js b/awx/ui/static/js/app.js index fcd78961b6..162b3967c4 100644 --- a/awx/ui/static/js/app.js +++ b/awx/ui/static/js/app.js @@ -598,7 +598,7 @@ var tower = angular.module('Tower', [ // monitor socket status checkCount = 0; - setInterval(function() { + $rootScope.dashboardInterval = setInterval(function() { if (sock.checkStatus() === 'error' || checkCount > 5) { // there's an error or we're stuck in a 'connecting' state. attempt to reconnect $log.debug('socket status: ' + sock.checkStatus()); @@ -646,8 +646,13 @@ var tower = angular.module('Tower', [ $location.path('/login'); } } else if ($rootScope.sessionTimer.isExpired()) { + // gets here on timeout if (next.templateUrl !== (urlPrefix + 'partials/login.html')) { $rootScope.sessionTimer.expireSession(); + if($rootScope.dashboardInterval){ + window.clearInterval($rootScope.dashboardInterval); + } + sock.socket.socket.disconnect(); $location.path('/login'); } } else { @@ -797,4 +802,3 @@ var tower = angular.module('Tower', [ ]); export default tower; - diff --git a/awx/ui/static/js/shared/Socket.js b/awx/ui/static/js/shared/Socket.js index b300203c4f..581444a1be 100644 --- a/awx/ui/static/js/shared/Socket.js +++ b/awx/ui/static/js/shared/Socket.js @@ -81,7 +81,8 @@ angular.module('SocketIO', ['AuthService', 'Utilities']) 'connect timeout': 3000, 'try multiple transports': false, 'max reconnection attempts': 3, - 'reconnection limit': 3000 + 'reconnection limit': 3000, + 'force new connection': true }); self.socket.on('connection', function() {