Files
fm-dx-webserver/web/js/websocket.js
T
2026-07-14 09:07:24 +02:00

30 lines
1.0 KiB
JavaScript

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);
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', (event) => {
setTimeout(() => {
console.warn(`WebSocket connection closed (${event.code} '${event.reason}' ${event.wasClean})`);
}, 100);
reject(new Error('WebSocket connection closed'));
});
});
window.socketPromise = socketPromise;
}