Add WS debug console
This commit is contained in:
68
assets/ws_debug.js
Normal file
68
assets/ws_debug.js
Normal file
@ -0,0 +1,68 @@
|
||||
let ws;
|
||||
|
||||
const JS_MESSAGE = "JS code";
|
||||
const IN_MESSAGE = "Incoming";
|
||||
|
||||
/**
|
||||
* Log message
|
||||
*/
|
||||
function log(src, txt) {
|
||||
const target = document.getElementById("ws_log");
|
||||
const msg = document.createElement("div");
|
||||
msg.className = "message";
|
||||
msg.innerHTML = `<div class='type'>${src}</div><div>${txt}</div>`
|
||||
target.insertBefore(msg, target.firstChild);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the state of the WebSocket
|
||||
*/
|
||||
function setState(state) {
|
||||
document.getElementById("state").innerText = state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize WebSocket connection
|
||||
*/
|
||||
function connect() {
|
||||
disconnect();
|
||||
log(JS_MESSAGE, "Initialize connection...");
|
||||
ws = new WebSocket("/api/ws");
|
||||
setState("Connecting...");
|
||||
ws.onopen = function () {
|
||||
log(JS_MESSAGE, "Connected to WebSocket !");
|
||||
setState("Connected");
|
||||
}
|
||||
ws.onmessage = function (event) {
|
||||
log(IN_MESSAGE, event.data);
|
||||
}
|
||||
ws.onclose = function () {
|
||||
log(JS_MESSAGE, "Disconnected from WebSocket !");
|
||||
setState("Disconnected");
|
||||
}
|
||||
ws.onerror = function (event) {
|
||||
console.error("WS Error!", event);
|
||||
log(JS_MESSAGE, `Error with websocket! ${event}`);
|
||||
setState("Error");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Close WebSocket connection
|
||||
*/
|
||||
function disconnect() {
|
||||
if (ws && ws.readyState === WebSocket.OPEN) {
|
||||
log(JS_MESSAGE, "Close connection...");
|
||||
ws.close();
|
||||
}
|
||||
|
||||
setState("Disconnected");
|
||||
ws = undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear WS logs
|
||||
*/
|
||||
function clearLogs() {
|
||||
document.getElementById("ws_log").innerHTML = "";
|
||||
}
|
Reference in New Issue
Block a user