node-red-contrib-mobius-flow-base 2.5.86-beta.78 → 2.5.86-beta.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -193,6 +193,42 @@ module.exports = function (RED) {
|
|
|
193
193
|
});
|
|
194
194
|
};
|
|
195
195
|
|
|
196
|
+
/**
|
|
197
|
+
* Update a given node's node status based on last active time
|
|
198
|
+
* @param {Object} mobiusNode - The node whos status is to be updated
|
|
199
|
+
*/
|
|
200
|
+
node.updateNodeStatus = function (mobiusNode) {
|
|
201
|
+
node.users[mobiusNode.id] = mobiusNode;
|
|
202
|
+
const timeSinceLastActive = Date.now() - node.users[mobiusNode.id].lastActiveTime;
|
|
203
|
+
let statusText = '';
|
|
204
|
+
let statusColour = 'green';
|
|
205
|
+
if (timeSinceLastActive < 15 * 60000) {
|
|
206
|
+
statusText = 'Active less than 15 minutes ago';
|
|
207
|
+
}
|
|
208
|
+
if (timeSinceLastActive >= 15 * 60000 && timeSinceLastActive < 3 * 60 * 60000) {
|
|
209
|
+
statusText = 'Active less than 3 hours ago';
|
|
210
|
+
}
|
|
211
|
+
if (timeSinceLastActive >= 3 * 60 * 60000 && timeSinceLastActive < 12 * 60 * 60000) {
|
|
212
|
+
statusText = 'Active less than 12 hours ago';
|
|
213
|
+
}
|
|
214
|
+
if (timeSinceLastActive >= 12 * 60 * 60000 && timeSinceLastActive < 24 * 60 * 60000) {
|
|
215
|
+
statusText = 'Active less than 24 hours ago';
|
|
216
|
+
}
|
|
217
|
+
if (timeSinceLastActive > 24 * 60 * 60000 && node.users[mobiusNode.id].lastActiveTime > 0) {
|
|
218
|
+
statusColour = 'grey';
|
|
219
|
+
statusText = 'Active more than 24 hours ago';
|
|
220
|
+
}
|
|
221
|
+
if (node.users[mobiusNode.id].lastActiveTime === 0) {
|
|
222
|
+
statusColour = 'grey';
|
|
223
|
+
statusText = 'Never Active';
|
|
224
|
+
}
|
|
225
|
+
node.users[mobiusNode.id].status({
|
|
226
|
+
fill: statusColour,
|
|
227
|
+
shape: 'dot',
|
|
228
|
+
text: statusText,
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
|
|
196
232
|
/**
|
|
197
233
|
* Register a new Mobius node with this config node
|
|
198
234
|
* @param {Object} mobiusNode - The new node to register
|
|
@@ -206,50 +242,16 @@ module.exports = function (RED) {
|
|
|
206
242
|
text: 'Connected',
|
|
207
243
|
});
|
|
208
244
|
}
|
|
209
|
-
node.users[mobiusNode.id].lastActiveTime =
|
|
245
|
+
node.users[mobiusNode.id].lastActiveTime = 0;
|
|
210
246
|
node.users[mobiusNode.id].on('send', () => {
|
|
211
|
-
console.log(
|
|
247
|
+
console.log(Date.now());
|
|
212
248
|
node.users[mobiusNode.id].lastActiveTime = Date.now();
|
|
249
|
+
node.updateNodeStatus(mobiusNode);
|
|
250
|
+
console.log(node.users[mobiusNode.id].lastActiveTime);
|
|
213
251
|
});
|
|
214
252
|
node.users[mobiusNode.id].statusCheckLoop = setInterval(() => {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if (timeSinceLastActive < 15 * 60000) {
|
|
218
|
-
node.users[mobiusNode.id].status({
|
|
219
|
-
fill: 'green',
|
|
220
|
-
shape: 'dot',
|
|
221
|
-
text: 'Active less than 15 minutes ago',
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
if (timeSinceLastActive >= 15 * 60000 && timeSinceLastActive < 3 * 60 * 60000) {
|
|
225
|
-
node.users[mobiusNode.id].status({
|
|
226
|
-
fill: 'green',
|
|
227
|
-
shape: 'dot',
|
|
228
|
-
text: 'Active less than 3 hours ago',
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
if (timeSinceLastActive >= 3 * 60 * 60000 && timeSinceLastActive < 12 * 60 * 60000) {
|
|
232
|
-
node.users[mobiusNode.id].status({
|
|
233
|
-
fill: 'green',
|
|
234
|
-
shape: 'dot',
|
|
235
|
-
text: 'Active less than 12 hours ago',
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
if (timeSinceLastActive >= 12 * 60 * 60000 && timeSinceLastActive < 24 * 60 * 60000) {
|
|
239
|
-
node.users[mobiusNode.id].status({
|
|
240
|
-
fill: 'green',
|
|
241
|
-
shape: 'dot',
|
|
242
|
-
text: 'Active less than 24 hours ago',
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
if (timeSinceLastActive > 24 * 60 * 60000) {
|
|
246
|
-
node.users[mobiusNode.id].status({
|
|
247
|
-
fill: 'grey',
|
|
248
|
-
shape: 'dot',
|
|
249
|
-
text: 'Active more than 24 hours ago',
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
}, 10000);
|
|
253
|
+
node.updateNodeStatus(mobiusNode);
|
|
254
|
+
}, 60000);
|
|
253
255
|
};
|
|
254
256
|
|
|
255
257
|
/**
|
|
@@ -258,6 +260,7 @@ module.exports = function (RED) {
|
|
|
258
260
|
* @param {Function} done - A callback to be run by the node after it has been deregistered
|
|
259
261
|
*/
|
|
260
262
|
node.deregister = function (mobiusNode, done) {
|
|
263
|
+
clearInterval(node.users[mobiusNode.id].statusCheckLoop);
|
|
261
264
|
delete node.users[mobiusNode.id];
|
|
262
265
|
if (node.service) {
|
|
263
266
|
try {
|
|
@@ -68,12 +68,10 @@ module.exports = function (RED) {
|
|
|
68
68
|
]);
|
|
69
69
|
} else {
|
|
70
70
|
node.send({ topic: response.uri, payload: allResources });
|
|
71
|
-
console.log(node.lastActiveTime);
|
|
72
71
|
}
|
|
73
72
|
});
|
|
74
73
|
|
|
75
74
|
node.serviceConn.register(node);
|
|
76
|
-
console.log(node.statusCheckLoop);
|
|
77
75
|
|
|
78
76
|
node.on('close', function (done) {
|
|
79
77
|
node.serviceConn.deregister(node, done);
|