Add support for auto-reconnecting to websocket

This commit is contained in:
Adam Goldsmith 2018-07-14 09:02:41 -04:00
parent 671d0a3b69
commit b44cb3e0b2

View File

@ -37,6 +37,7 @@ const lowVoltage = 11.9;
let stations = {};
let messages = [];
let aprsStream;
if (Notification.permission !== "granted") {
Notification.requestPermission(permission => {
@ -115,9 +116,7 @@ function alertVoltage(callsign) {
`Voltage: ${stations[callsign].lastVoltage}`);
}
let aprsStream = new WebSocket("wss://adamgoldsmith.name/APRSws");
aprsStream.onmessage = function(event) {
let message = JSON.parse(event.data);
function handleMessage(message) {
let callsign = `${message.from.call}-${message.from.ssid || 0}`;
let date = new Date(); // TODO: could remove "message.recieved" from server
@ -150,7 +149,21 @@ aprsStream.onmessage = function(event) {
redrawTable();
}
};
}
function connectToStream() {
aprsStream = new WebSocket("wss://adamgoldsmith.name/APRSws");
aprsStream.onclose = () => {
// Try to reconnect every 5 seconds
let interval = window.setInterval(() => {
window.clearInterval(interval);
connectToStream();
}, 5000);
};
aprsStream.onmessage = event => handleMessage(JSON.parse(event.data));
}
connectToStream();
window.addEventListener("load", redrawTable);
window.setInterval(redrawTable, 1000);