diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2018-04-07 23:22:58 +0100 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2018-04-07 23:22:58 +0100 |
| commit | 0bbe22dd69bbb149e9fed74c87e7fc75e181483e (patch) | |
| tree | 49a5eea886885c7cb5f82d873044e9f626127e16 /public/javascripts/dash.js | |
| parent | 1301d90e93af799a9054f133847ebf3cbda15f9d (diff) | |
| download | tplink-energy-monitor-0bbe22dd69bbb149e9fed74c87e7fc75e181483e.tar.xz tplink-energy-monitor-0bbe22dd69bbb149e9fed74c87e7fc75e181483e.zip | |
Try to re-establish lost websocket connections
Diffstat (limited to 'public/javascripts/dash.js')
| -rw-r--r-- | public/javascripts/dash.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/public/javascripts/dash.js b/public/javascripts/dash.js index 7a8207c..e3f39a9 100644 --- a/public/javascripts/dash.js +++ b/public/javascripts/dash.js @@ -26,6 +26,7 @@ var dash = { var ws = new WebSocket(wsUri); ws.onopen = function () { console.log('Websocket connection established'); + $('#connection-error').hide(200); ws.send(JSON.stringify( { requestType: 'getCachedData', @@ -33,7 +34,14 @@ var dash = { } )); } - ws.onmessage = this.wsMessageHandler; + ws.onmessage = dash.wsMessageHandler; + + ws.onclose = function() { + // Usually caused by mobile devices going to sleep or the user minimising the browser app. + // The setTimeout will begin once the device wakes from sleep or the browser regains focus. + $('#connection-error').show(); + setTimeout(dash.initWsConnection, 2000); + } }, wsMessageHandler: function(messageEvent) { |