diff options
| author | James Barnett <james.barnett@fivium.co.uk> | 2018-04-08 17:25:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-08 17:25:47 +0100 |
| commit | eb0185c03f8d5b68949798e8040b42a203b040a2 (patch) | |
| tree | 86da8449b0c92ec29a15baffe3e7bd8ebd34488e /services/data-broadcaster.js | |
| parent | 954aff49707738e660e92e0418c31b1ec78a85a8 (diff) | |
| parent | 4ec37af74fc77f7381d7c5c3b2560c8726f75ffa (diff) | |
| download | tplink-energy-monitor-0.2.tar.xz tplink-energy-monitor-0.2.zip | |
Merge pull request #1 from jamesbarnett91/websocketsv0.2
Switch from http polling to websockets
Diffstat (limited to 'services/data-broadcaster.js')
| -rw-r--r-- | services/data-broadcaster.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/services/data-broadcaster.js b/services/data-broadcaster.js new file mode 100644 index 0000000..9e0c5d0 --- /dev/null +++ b/services/data-broadcaster.js @@ -0,0 +1,43 @@ +const app = require('../app'); + +function broadcastRealtimeUsageUpdate(deviceId, data) { + broadcast(generatePayload('realtimeUsage', deviceId, data)); +} + +function broadcastDailyUsageUpdate(deviceId, data) { + broadcast(generatePayload('dailyUsage', deviceId, data)); +} + +function broadcastMonthlyUsageUpdate(deviceId, data) { + broadcast(generatePayload('monthlyUsage', deviceId, data)); +} + +function broadcastPowerStateUpdate(deviceId, data) { + broadcast(generatePayload('powersState', deviceId, data)); +} + +function broadcast(payload) { + app.getWsClients().forEach(client => { + client.send(payload); + }) +} + +function generatePayload(dataType, deviceId, data) { + + let payload = { + dataType: dataType, + deviceId: deviceId, + data: data + } + + return JSON.stringify(payload); +} + + +module.exports = { + broadcastRealtimeUsageUpdate: broadcastRealtimeUsageUpdate, + broadcastDailyUsageUpdate: broadcastDailyUsageUpdate, + broadcastMonthlyUsageUpdate: broadcastMonthlyUsageUpdate, + broadcastPowerStateUpdate: broadcastPowerStateUpdate, + generatePayload: generatePayload +}
\ No newline at end of file |