Add support for auto-reconnecting to websocket
This commit is contained in:
parent
671d0a3b69
commit
b44cb3e0b2
21
client.js
21
client.js
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user