From 1b8b4a68b70881dc95c52441a08a1fb622a5430d Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Wed, 5 Oct 2016 14:10:40 -0700 Subject: [PATCH] Resubscribing the UI to the last group it was on, whenever a disconnect happens that was no intentional --- .../client/src/shared/socket/socket.service.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/awx/ui/client/src/shared/socket/socket.service.js b/awx/ui/client/src/shared/socket/socket.service.js index dd638e73bc..59419771af 100644 --- a/awx/ui/client/src/shared/socket/socket.service.js +++ b/awx/ui/client/src/shared/socket/socket.service.js @@ -7,6 +7,7 @@ import ReconnectingWebSocket from 'reconnectingwebsocket'; export default ['$rootScope', '$location', '$log','$state', function ($rootScope, $location, $log, $state) { + var needsResubscribing = false; return { init: function() { var self = this, @@ -25,6 +26,11 @@ export default $log.debug("Websocket connection opened."); $rootScope.socketPromise.resolve(); self.checkStatus(); + if(needsResubscribing){ + self.subscribe(self.getLast()); + needsResubscribing = false; + } + }; self.socket.onerror = function (error) { @@ -32,8 +38,15 @@ export default $log.debug('Websocket Error Logged: ' + error); //log errors }; - self.socket.onclose = function () { - $log.debug('Websocket Disconnected'); + self.socket.onconnecting = function (event) { + self.checkStatus(); + $log.debug('Websocket reconnecting'); + needsResubscribing = true; + }; + + self.socket.onclose = function (event) { + self.checkStatus(); + $log.debug(`Websocket disconnected`); }; self.socket.onmessage = this.onMessage;