mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
import {
|
|
eventDispatcher,
|
|
stateDispatcher,
|
|
connectionFailed,
|
|
} from "../js/eventHandler.js";
|
|
import { addDataToWaterfall } from "../js/waterfallHandler.js";
|
|
|
|
// ----------------- init pinia stores -------------
|
|
import { setActivePinia } from "pinia";
|
|
import pinia from "../store/index";
|
|
setActivePinia(pinia);
|
|
|
|
import { settingsStore as settings } from "../store/settingsStore.js";
|
|
|
|
function connect(endpoint, dispatcher) {
|
|
let socket = new WebSocket(
|
|
"ws://" + settings.local.host + ":" + settings.local.port + "/" + endpoint,
|
|
);
|
|
|
|
// handle opening
|
|
socket.addEventListener("open", function (event) {
|
|
//console.log("Connected to the WebSocket server: " + endpoint);
|
|
});
|
|
|
|
// handle data
|
|
socket.addEventListener("message", function (event) {
|
|
dispatcher(event.data);
|
|
return;
|
|
});
|
|
|
|
// handle errors
|
|
socket.addEventListener("error", function (event) {
|
|
//console.error("WebSocket error:", event);
|
|
connectionFailed(endpoint, event);
|
|
});
|
|
|
|
// handle closing and reconnect
|
|
socket.addEventListener("close", function (event) {
|
|
//console.log("WebSocket connection closed:", event.code);
|
|
|
|
// Reconnect handler
|
|
if (!event.wasClean) {
|
|
setTimeout(() => {
|
|
//console.log("Reconnecting to websocket");
|
|
connect(endpoint, dispatcher);
|
|
}, 1000);
|
|
}
|
|
});
|
|
}
|
|
|
|
// Initial connection attempts to endpoints
|
|
export function initConnections() {
|
|
connect("states", stateDispatcher);
|
|
connect("events", eventDispatcher);
|
|
connect("fft", addDataToWaterfall);
|
|
}
|