diff --git a/src/data-managers/simulator-data-data-manager.js b/src/data-managers/simulator-data-data-manager.js index 666ea5e..ef05abd 100644 --- a/src/data-managers/simulator-data-data-manager.js +++ b/src/data-managers/simulator-data-data-manager.js @@ -78,16 +78,21 @@ class SimulatorDataDataManager { onMessage(event, node) { var message = this.bufferToMessage(event.data); - AppDispatcher.dispatch({ - type: 'simulatorData/data-changed', - data: message, - node: node - }); + if (message !== null) { + AppDispatcher.dispatch({ + type: 'simulatorData/data-changed', + data: message, + node: node + }); + } } bufferToMessage(blob) { // parse incoming message into usable data var data = new DataView(blob); + if (data.byteLength === 0) { + return null; + } let OFFSET_TYPE = 2; let OFFSET_VERSION = 4; diff --git a/src/stores/simulator-data-store.js b/src/stores/simulator-data-store.js index 9033fd3..0826959 100644 --- a/src/stores/simulator-data-store.js +++ b/src/stores/simulator-data-store.js @@ -54,18 +54,16 @@ class SimulationDataStore extends ReduceStore { return state; case 'simulatorData/data-changed': - // get index for simulator id - if (state[action.node._id] == null) { - return state; - } + // get index for simulator id + if (state[action.node._id] == null) { + return state; + } - let index = action.node.simulators.findIndex(simulator => simulator.id === action.data.id); - if (index === -1 || state[action.node._id][index] == null) { - return state; - } + let index = action.node.simulators.findIndex(simulator => simulator.id === action.data.id); + if (index === -1 || state[action.node._id][index] == null) { + return state; + } - // only add data, if newer than current - if (state[action.node._id][index].sequence < action.data.sequence) { // add data to simulator for (i = 0; i < action.data.length; i++) { while (state[action.node._id][index].values.length < i + 1) { @@ -87,9 +85,6 @@ class SimulationDataStore extends ReduceStore { // explicit call to prevent array copy this.__emitChange(); - } else { - console.log('same sequence ' + state[action.node._id][index].sequence + ' ' + action.data.sequence); - } return state;