Skip to content

Commit

Permalink
Merge pull request #392 from weaveworks/352-trying
Browse files Browse the repository at this point in the history
'Trying to reconnect..' in UI even though its connected
  • Loading branch information
davkal committed Aug 28, 2015
2 parents 9edd507 + 1dccca2 commit 8365add
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 6 deletions.
6 changes: 6 additions & 0 deletions client/app/scripts/actions/app-actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ module.exports = {
WebapiUtils.getNodesDelta(AppStore.getCurrentTopologyUrl());
},

openWebsocket: function() {
AppDispatcher.dispatch({
type: ActionTypes.OPEN_WEBSOCKET
});
},

closeWebsocket: function() {
AppDispatcher.dispatch({
type: ActionTypes.CLOSE_WEBSOCKET
Expand Down
1 change: 1 addition & 0 deletions client/app/scripts/constants/action-types.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ module.exports = keymirror({
HIT_ESC_KEY: null,
LEAVE_EDGE: null,
LEAVE_NODE: null,
OPEN_WEBSOCKET: null,
RECEIVE_NODE_DETAILS: null,
RECEIVE_NODES: null,
RECEIVE_NODES_DELTA: null,
Expand Down
7 changes: 7 additions & 0 deletions client/app/scripts/stores/__tests__/app-store-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ describe('AppStore', function() {
type: ActionTypes.HIT_ESC_KEY
};

const OpenWebsocketAction = {
type: ActionTypes.OPEN_WEBSOCKET
};

const ReceiveEmptyNodesDeltaAction = {
type: ActionTypes.RECEIVE_NODES_DELTA,
delta: {}
Expand Down Expand Up @@ -170,6 +174,9 @@ describe('AppStore', function() {
expect(AppStore.isWebsocketClosed()).toBeTruthy();
expect(AppStore.getNodes()).toEqual(NODE_SET);

registeredCallback(OpenWebsocketAction);
expect(AppStore.isWebsocketClosed()).toBeFalsy();

registeredCallback(ReceiveEmptyNodesDeltaAction);
expect(AppStore.getNodes()).toEqual({});
});
Expand Down
14 changes: 8 additions & 6 deletions client/app/scripts/stores/app-store.js
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,14 @@ AppStore.registeredCallback = function(payload) {
AppStore.emit(AppStore.CHANGE_EVENT);
break;

case ActionTypes.OPEN_WEBSOCKET:
// flush nodes cache after re-connect
nodes = {};
websocketClosed = false;

AppStore.emit(AppStore.CHANGE_EVENT);
break;

case ActionTypes.RECEIVE_ERROR:
errorUrl = payload.errorUrl;
AppStore.emit(AppStore.CHANGE_EVENT);
Expand All @@ -207,12 +215,6 @@ AppStore.registeredCallback = function(payload) {

errorUrl = null;

// flush nodes cache after re-connect
if (websocketClosed) {
nodes = {};
}
websocketClosed = false;

// nodes that no longer exist
_.each(payload.delta.remove, function(nodeId) {
// in case node disappears before mouseleave event
Expand Down
4 changes: 4 additions & 0 deletions client/app/scripts/utils/web-api-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ function createWebsocket(topologyUrl) {

socket = new WebSocket(WS_URL + topologyUrl + '/ws?t=' + updateFrequency);

socket.onopen = function() {
AppActions.openWebsocket();
};

socket.onclose = function() {
clearTimeout(reconnectTimer);
socket = null;
Expand Down

0 comments on commit 8365add

Please sign in to comment.