resources/js/newui.js

DOWNLOAD
let socket = null;
let session_id = null;

function handleClosed() {
    document.querySelector('body').outerHTML = 'WEBSOCKET IS DOWN';
}

function checkOpen() {
    return socket && socket.readyState == WebSocket.OPEN;
}

window.addEventListener('DOMContentLoaded', _ => {
    // TODO tää pitäisi varmaan jotenkin konffata 
    socket = new WebSocket("ws://localhost:3011/newui");
    
    // Connection opened
    socket.addEventListener("open", (event) => {
    });
    socket.addEventListener("error", (event) => {
	alert.log('Error: ', event);
    });

    socket.addEventListener("close", e => {
    });

    // Listen for messages
    socket.addEventListener("message", (event) => {
	console.log(`got newui message ${event.data}`);
	let split = event.data.split(':');
	let key = split[0];
	switch(key) {
	case "SESSIONID":
	    session_id = split[1];
	    break;
	default:
	    let msg = JSON.parse(event.data);

	    let id = msg.id;
	    let html = msg["new-html"];

	    document.querySelector(`#${id}`).outerHTML = html;
	}
    });
});

function send(event, param) {
    console.log(`Calling ${event}`);
    if(!session_id) { alert('Session id is damaged'); return; }
    if(!checkOpen()) { handleClosed(); return; }

    let json = JSON.stringify({ sessionid: session_id, 
				call: event,
				param: param});
    socket.send(json);
    
    console.log(`Called ${event}`);
}