diff options
Diffstat (limited to 'services/data-broadcaster.js')
| -rw-r--r-- | services/data-broadcaster.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/services/data-broadcaster.js b/services/data-broadcaster.js new file mode 100644 index 0000000..a49f4a7 --- /dev/null +++ b/services/data-broadcaster.js @@ -0,0 +1,42 @@ +const app = require('../app'); + +function broadcastRealtimeUsageUpdate(data) { + broadcast(generatePayload('realtimeUsage', data)); +} + +function broadcastDailyUsageUpdate(data) { + broadcast(generatePayload('dailyUsage', data)); +} + +function broadcastMonthlyUsageUpdate(data) { + broadcast(generatePayload('monthlyUsage', data)); +} + +function broadcastPowerStateUpdate(data) { + broadcast(generatePayload('powersState', data)); +} + +function broadcast(payload) { + app.getWsClients().forEach(client => { + client.send(payload); + }) +} + +function generatePayload(dataType, data) { + + let payload = { + dataType: dataType, + data: data + } + + return JSON.stringify(payload); +} + + +module.exports = { + broadcastRealtimeUsageUpdate: broadcastRealtimeUsageUpdate, + broadcastDailyUsageUpdate: broadcastDailyUsageUpdate, + broadcastMonthlyUsageUpdate: broadcastMonthlyUsageUpdate, + broadcastPowerStateUpdate: broadcastPowerStateUpdate, + generatePayload: generatePayload +}
\ No newline at end of file |