feat(DevWeb): Create WebsocketToolkit.js

This commit is contained in:
Lucàs
2024-04-23 20:06:17 +02:00
parent 5bc33f7754
commit 2f9d2546fb
8 changed files with 137 additions and 118 deletions
@@ -0,0 +1,13 @@
export default class Message {
constructor(rawMessage) {
// Parse the message
const message = JSON.parse(rawMessage);
message.data = JSON.parse(message.data);
console.log(message);
// Set the message properties
this.type = message.type;
this.data = message.data;
}
}
@@ -0,0 +1,31 @@
import Message from "./Message.js";
export default class WebsocketToolkit {
action = {}
constructor(url) {
this.url = url;
this.ws = new WebSocket(url);
}
onOpen(callback) {
this.ws.onopen = callback;
}
onMessage(type, callback) {
this.action[type] = callback;
this.ws.onmessage = (event) => {
const message = new Message(event.data);
this.action[message.type](message.data)
};
}
onClose(callback) {
this.ws.onclose = callback;
}
onError(callback) {
this.ws.onerror = callback;
}
}
@@ -1,19 +0,0 @@
const nbColorsElement = document.getElementById("nbColors");
const nbValuesElement = document.getElementById("nbValues");
const nbRoundsElement = document.getElementById("nbRounds")
/**
* Mise à jour du nombre de rounds max en fonction du nombre de couleurs et de valeurs séléctionnés
*/
function updateOnChange() {
nbRoundsElement.max = nbColorsElement.value * nbValuesElement.value;
nbRoundsElement.value =
(nbRoundsElement.value > nbRoundsElement.max)
? nbRoundsElement.max
: nbRoundsElement.value
;
}
nbColorsElement.addEventListener("change", updateOnChange);
nbValuesElement.addEventListener("change", updateOnChange);