mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 10:11:03 +00:00
Merge pull request #392 from weaveworks/352-trying
'Trying to reconnect..' in UI even though its connected
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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: {}
|
||||
@@ -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({});
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user