Skip to content

Commit 7fff923

Browse files
Mark JessopMark Jessop
authored andcommitted
Add some additional debugging, disable websockets processing while polling for data.
1 parent 8503a6f commit 7fff923

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

js/tracker.js

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3526,7 +3526,7 @@ function refresh() {
35263526
$("#stText").text("");
35273527
},
35283528
error: function() {
3529-
$("#stText").text("error |");
3529+
$("#stText").text("poll error |");
35303530
document.getElementById("timeperiod").disabled = false;
35313531
ajax_inprogress = false;
35323532
},
@@ -3535,6 +3535,7 @@ function refresh() {
35353535
document.getElementById("timeperiod").disabled = false;
35363536
}
35373537
clientActive = true;
3538+
console.log("WebSockets - Resuming Websockets updates.")
35383539
clearTimeout(periodical);
35393540
ajax_inprogress = false;
35403541
}
@@ -3628,29 +3629,38 @@ function liveData() {
36283629

36293630
} else {
36303631
var frame = JSON.parse(message.payloadString.toString());
3632+
36313633
if (wvar.query == "" || sondePrefix.indexOf(wvar.query) > -1 || wvar.query == frame.serial) {
36323634
if (frame.length == null) {
36333635
var tempDate = new Date(frame.datetime).getTime();
36343636
} else {
36353637
var tempDate = new Date(frame[frame.length - 1].datetime).getTime()
36363638
}
3637-
if ((dateNow - tempDate) < 45000) {
3639+
if ((dateNow - tempDate) < 30000) {
3640+
// Data is recent enough.
36383641
var test = formatData(frame, true);
36393642
if (clientActive) {
36403643
live_data_buffer.positions.position.push.apply(live_data_buffer.positions.position,test.positions.position)
36413644
}
36423645
$("#stTimer").attr("data-timestamp", dateNow);
36433646
$("#stText").text("websocket ("+ ((dateNow - tempDate)/1000).toFixed(1) +" s) |");
36443647
} else if ((dateNow - new Date(frame.datetime).getTime()) > 150000) {
3648+
// Data is very old, which may indicate that our tab has probably been suspended.
3649+
// We now poll for data.
36453650
$("#stText").text("data error ("+ ((dateNow - tempDate)/1000).toFixed(1) +" s) |");
3646-
console.log("WebSockets Error: Data Age was " + ((dateNow - tempDate)/1000).toFixed(1) + " s, frame length: " + frame.length);
3647-
//refresh();
3651+
console.log("WebSockets - Data Age was " + ((dateNow - tempDate)/1000).toFixed(1) + " s, frame length: " + frame.length + ". Discarding and polling for data.");
3652+
// Discard all further messages until we have finished the next poll.
3653+
console.log("WebSockets - Tab possibly suspended, polling for updates.")
3654+
clientActive = false;
3655+
refresh();
36483656
} else {
36493657
$("#stText").text("data error ("+ ((dateNow - tempDate)/1000).toFixed(1) +" s) |");
3650-
console.log("WebSockets Error: Data Age was " + ((dateNow - tempDate)/1000).toFixed(1) + " s, frame length: " + frame.length);
3658+
console.log("WebSockets - Data Age was " + ((dateNow - tempDate)/1000).toFixed(1) + " s, frame length: " + frame.length + ". Discarding frame.");
36513659
}
36523660
}
36533661
}
3662+
} else {
3663+
console.log("WebSockets - Discarding Message.")
36543664
}
36553665
}
36563666
catch(err) {}

0 commit comments

Comments
 (0)