blob: dc22df26b27aae0548d571890d305e072eda9371 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
const express = require('express');
const router = express.Router();
const deviceManager = require('../services/device-manager');
const dataFetcher = require('../services/data-fetcher');
const dataBroadcaster = require('../services/data-broadcaster');
router.ws('/', function(ws, req) {
ws.on('message', 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();
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));
}
});
});
module.exports = router;
|