You've already forked fm-dx-webserver
mirror of
https://github.com/KubaPro010/fm-dx-webserver.git
synced 2026-02-26 22:13:53 +01:00
Merge branch 'main' into main
This commit is contained in:
@@ -41,7 +41,7 @@ function tuneDown() {
|
||||
|
||||
function tuneTo(freq) {
|
||||
previousFreq = getCurrentFreq();
|
||||
socket.send("T" + ((parseFloat(freq)) * 1000).toFixed(3));
|
||||
socket.send("T" + ((parseFloat(freq)) * 1000).toFixed(0));
|
||||
}
|
||||
|
||||
function resetRDS() {
|
||||
|
||||
@@ -6,6 +6,7 @@ var parsedData, signalChart, previousFreq;
|
||||
var data = [];
|
||||
var signalData = [];
|
||||
let updateCounter = 0;
|
||||
let lastReconnectAttempt = 0;
|
||||
let messageCounter = 0; // Count for WebSocket data length returning 0
|
||||
let messageData = 800; // Initial value anything above 0
|
||||
let messageLength = 800; // Retain value of messageData until value is updated
|
||||
@@ -375,10 +376,16 @@ function sendPingRequest() {
|
||||
messageCounter = 0;
|
||||
}
|
||||
|
||||
// Automatic reconnection on WebSocket close
|
||||
if (socket.readyState === WebSocket.CLOSED || socket.readyState === WebSocket.CLOSING) {
|
||||
// Automatic reconnection on WebSocket close with cooldown
|
||||
const now = Date.now();
|
||||
if (
|
||||
(socket.readyState === WebSocket.CLOSED || socket.readyState === WebSocket.CLOSING) &&
|
||||
(now - lastReconnectAttempt > TIMEOUT_DURATION)
|
||||
) {
|
||||
lastReconnectAttempt = now;
|
||||
|
||||
socket = new WebSocket(socketAddress);
|
||||
|
||||
|
||||
socket.onopen = () => {
|
||||
sendToast('info', 'Connected', 'Reconnected successfully!', false, false);
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const versionDate = new Date('May 30, 2025 21:00:00');
|
||||
const currentVersion = `v1.3.9 [${versionDate.getDate()}/${versionDate.getMonth() + 1}/${versionDate.getFullYear()}]`;
|
||||
const versionDate = new Date('Aug 30, 2025 21:00:00');
|
||||
const currentVersion = `v1.3.10 [${versionDate.getDate()}/${versionDate.getMonth() + 1}/${versionDate.getFullYear()}]`;
|
||||
|
||||
|
||||
function loadScript(src) {
|
||||
|
||||
@@ -1,30 +1,29 @@
|
||||
var url = new URL('text', window.location.href);
|
||||
url.protocol = url.protocol.replace('http', 'ws');
|
||||
var socketAddress = url.href;
|
||||
var socket = new WebSocket(socketAddress);
|
||||
if (!window.socket || window.socket.readyState === WebSocket.CLOSED || window.socket.readyState === WebSocket.CLOSING) {
|
||||
var url = new URL('text', window.location.href);
|
||||
url.protocol = url.protocol.replace('http', 'ws');
|
||||
var socketAddress = url.href;
|
||||
var socket = new WebSocket(socketAddress);
|
||||
|
||||
const socketPromise = new Promise((resolve, reject) => {
|
||||
// Event listener for when the WebSocket connection is open
|
||||
socket.addEventListener('open', () => {
|
||||
console.log('WebSocket connection open');
|
||||
resolve(socket); // Resolve the promise with the WebSocket instance
|
||||
window.socket = socket;
|
||||
|
||||
const socketPromise = new Promise((resolve, reject) => {
|
||||
socket.addEventListener('open', () => {
|
||||
console.log('WebSocket connection open');
|
||||
resolve(socket);
|
||||
});
|
||||
|
||||
socket.addEventListener('error', (error) => {
|
||||
console.error('WebSocket error', error);
|
||||
reject(error);
|
||||
});
|
||||
|
||||
socket.addEventListener('close', () => {
|
||||
setTimeout(() => {
|
||||
console.warn('WebSocket connection closed');
|
||||
}, 100);
|
||||
reject(new Error('WebSocket connection closed'));
|
||||
});
|
||||
});
|
||||
|
||||
// Event listener for WebSocket errors
|
||||
socket.addEventListener('error', (error) => {
|
||||
console.error('WebSocket error', error);
|
||||
reject(error); // Reject the promise on error
|
||||
});
|
||||
|
||||
// Event listener for WebSocket connection closure
|
||||
socket.addEventListener('close', () => {
|
||||
console.warn('WebSocket connection closed');
|
||||
reject(new Error('WebSocket connection closed')); // Reject with closure warning
|
||||
});
|
||||
});
|
||||
|
||||
// Assign the socketPromise to window.socketPromise for global access
|
||||
window.socketPromise = socketPromise;
|
||||
|
||||
// Assign the socket instance to window.socket for global access
|
||||
window.socket = socket;
|
||||
window.socketPromise = socketPromise;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user