2023-11-09 16:15:12 +00:00
|
|
|
import { eventDispatcher } from "../js/eventHandler.js";
|
2023-11-09 16:14:22 +00:00
|
|
|
import { addDataToWaterfall } from "../js/waterfallHandler.js";
|
2023-11-09 14:48:10 +00:00
|
|
|
|
2023-11-09 16:14:22 +00:00
|
|
|
function connect(endpoint, dispatcher) {
|
|
|
|
let socket = new WebSocket("ws://localhost:5000/" + endpoint);
|
2023-11-09 12:52:47 +00:00
|
|
|
|
|
|
|
// handle opening
|
|
|
|
socket.addEventListener("open", function (event) {
|
2023-11-09 16:14:22 +00:00
|
|
|
console.log("Connected to the WebSocket server: " + endpoint);
|
2023-11-09 12:52:47 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
// handle data
|
|
|
|
socket.addEventListener("message", function (event) {
|
2023-11-09 16:15:12 +00:00
|
|
|
dispatcher(event.data);
|
2023-11-09 12:52:47 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
// handle errors
|
|
|
|
socket.addEventListener("error", function (event) {
|
|
|
|
console.error("WebSocket error:", event);
|
|
|
|
});
|
|
|
|
|
|
|
|
// handle closing and reconnect
|
|
|
|
socket.addEventListener("close", function (event) {
|
|
|
|
console.log("WebSocket connection closed:", event.code);
|
|
|
|
|
|
|
|
// Reconnect handler
|
2023-11-09 14:48:10 +00:00
|
|
|
if (!event.wasClean) {
|
2023-11-09 12:52:47 +00:00
|
|
|
setTimeout(() => {
|
2023-11-09 14:48:10 +00:00
|
|
|
console.log("Reconnecting to websocket");
|
2023-11-09 16:14:22 +00:00
|
|
|
connect(endpoint, dispatcher);
|
2023-11-09 12:52:47 +00:00
|
|
|
}, 1000);
|
|
|
|
}
|
|
|
|
});
|
2023-11-09 09:37:45 +00:00
|
|
|
}
|
|
|
|
|
2023-11-09 16:14:22 +00:00
|
|
|
// Initial connection attempts to endpoints
|
2023-11-09 16:15:12 +00:00
|
|
|
connect("events", eventDispatcher);
|
|
|
|
connect("fft", addDataToWaterfall);
|