socket disconnect on session timeout

the UI was trying to reconnect to the socket server using the previous session's auth token. I'm forcing a disconnect now when the session times out and i added 'force new conection' to true in the socket configuration so that when a new session starts it doesn't use the old auth token.
This commit is contained in:
Jared Tabor 2015-03-03 14:49:44 -05:00
parent 9138b7c8ae
commit 6087326bef
2 changed files with 8 additions and 3 deletions

View File

@ -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;

View File

@ -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() {