aboutsummaryrefslogtreecommitdiff
path: root/routes/ws.js
diff options
context:
space:
mode:
Diffstat (limited to 'routes/ws.js')
-rw-r--r--routes/ws.js15
1 files changed, 9 insertions, 6 deletions
diff --git a/routes/ws.js b/routes/ws.js
index dc22df2..08b0a18 100644
--- a/routes/ws.js
+++ b/routes/ws.js
@@ -9,14 +9,17 @@ router.ws('/', function(ws, req) {
ws.on('message', msg => {
+ let message = JSON.parse(msg);
+
// Latest data is always pushed out to clients, but clients can also request cached data at any time.
- if(msg === 'getCachedData') {
- let cachedData = dataFetcher.getCachedData();
+ if(message.requestType === 'getCachedData') {
+ let deviceId = message.deviceId;
+ let cachedData = dataFetcher.getCachedData(deviceId);
- ws.send(dataBroadcaster.generatePayload('realtimeUsage', cachedData.realtimeUsage));
- ws.send(dataBroadcaster.generatePayload('dailyUsage', cachedData.dailyUsage));
- ws.send(dataBroadcaster.generatePayload('monthlyUsage', cachedData.monthlyUsage));
- ws.send(dataBroadcaster.generatePayload('powerState', cachedData.powerState));
+ ws.send(dataBroadcaster.generatePayload('realtimeUsage', deviceId, cachedData.realtimeUsage));
+ ws.send(dataBroadcaster.generatePayload('dailyUsage', deviceId, cachedData.dailyUsage));
+ ws.send(dataBroadcaster.generatePayload('monthlyUsage', deviceId, cachedData.monthlyUsage));
+ ws.send(dataBroadcaster.generatePayload('powerState', deviceId, cachedData.powerState));
}
});