85 lines
2.0 KiB
JavaScript
85 lines
2.0 KiB
JavaScript
|
var gateway = `ws://${window.location.hostname}/ws`;
|
||
|
var websocket;
|
||
|
|
||
|
window.addEventListener("load", onLoad);
|
||
|
|
||
|
function initWebSocket() {
|
||
|
console.log("Trying to open a WebSocket connection...");
|
||
|
websocket = new WebSocket(gateway);
|
||
|
websocket.onopen = onOpen;
|
||
|
websocket.onclose = onClose;
|
||
|
websocket.onmessage = onMessage; // <-- add this line
|
||
|
}
|
||
|
|
||
|
function initButtons() {
|
||
|
document
|
||
|
.getElementById("btn-ws-stop")
|
||
|
.addEventListener("click", livedebug_stop);
|
||
|
document
|
||
|
.getElementById("btn-ws-start")
|
||
|
.addEventListener("click", livedebug_start);
|
||
|
}
|
||
|
|
||
|
function onOpen(event) {
|
||
|
console.log("Connection opened");
|
||
|
}
|
||
|
|
||
|
function onClose(event) {
|
||
|
console.log("Connection closed");
|
||
|
setTimeout(initWebSocket, 2000);
|
||
|
}
|
||
|
|
||
|
function onMessage(event) {
|
||
|
var livedebug_out = document.getElementById("livedebug-out");
|
||
|
var textarea_heigth = livedebug_out.scrollHeight;
|
||
|
livedebug_out.value += event.data;
|
||
|
livedebug_out.scrollTop = livedebug_out.scrollHeight;
|
||
|
do_resize(livedebug_out);
|
||
|
}
|
||
|
|
||
|
function onLoad(event) {
|
||
|
initWebSocket();
|
||
|
initButtons();
|
||
|
}
|
||
|
|
||
|
function livedebug_start() {
|
||
|
websocket.send("start");
|
||
|
}
|
||
|
|
||
|
function livedebug_stop() {
|
||
|
websocket.send("stop");
|
||
|
}
|
||
|
|
||
|
function do_resize(textbox) {
|
||
|
var maxrows = 15;
|
||
|
var minrows = 3;
|
||
|
var txt = textbox.value;
|
||
|
var cols = textbox.cols;
|
||
|
|
||
|
var arraytxt = txt.split("\n");
|
||
|
var rows = arraytxt.length;
|
||
|
|
||
|
for (i = 0; i < arraytxt.length; i++)
|
||
|
rows += parseInt(arraytxt[i].length / cols);
|
||
|
|
||
|
if (rows > maxrows) textbox.rows = maxrows;
|
||
|
else if (rows < minrows) textbox.rows = minrows;
|
||
|
else textbox.rows = rows;
|
||
|
}
|
||
|
|
||
|
function notifyMe() {
|
||
|
if (!("Notification" in window)) {
|
||
|
alert("This browser does not support desktop notification");
|
||
|
} else if (Notification.permission === "granted") {
|
||
|
const notification = new Notification("Hi there!");
|
||
|
// …
|
||
|
} else if (Notification.permission !== "denied") {
|
||
|
Notification.requestPermission().then((permission) => {
|
||
|
if (permission === "granted") {
|
||
|
const notification = new Notification("Hi there!");
|
||
|
// …
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|