summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorgrothedev <grothedev@gmail.com>2025-07-06 21:02:12 -0400
committergrothedev <grothedev@gmail.com>2025-07-06 21:02:12 -0400
commitbe8540404fcf06694ac85fd88d168b0644707055 (patch)
treedf8732bcfd338421d1b52ca071ae098986942e4b /public
parentc05c35c4e04616c92ed7e3cdcebb2895b3010d05 (diff)
websockets updates
Diffstat (limited to 'public')
-rw-r--r--public/js/main.js24
1 files changed, 20 insertions, 4 deletions
diff --git a/public/js/main.js b/public/js/main.js
index 583d06f..0d68a6c 100644
--- a/public/js/main.js
+++ b/public/js/main.js
@@ -115,6 +115,9 @@ function initDOM(){
domElems.buttonFileUpload = $('#button_fileupload')[0];
domElems.body = $('body')[0];
domElems.cnv = $('#bg')[0];
+ domElems.statusWS = $('#statusWS')[0];
+ domElems.statusWS.innerHTML = 'Connecting...';
+ domElems.statusWS.style.color = 'yellow';
cnv = domElems.cnv; //for convenience
//domElems.buttonFileUpload.enabled = false;
domElems.buttonFileUpload.onclick = uploadFile;
@@ -222,21 +225,27 @@ function connectWebSocket(){
socket.onerror = (err)=>{
console.log('connection error');
console.log(err);
+ domElems.statusWS.innerHTML = 'Connection error';
+ domElems.statusWS.style.color = 'red';
//TODO $('').textContent = err;
}
socket.onclose = (err) => {
console.log('disconnected');
console.log(err);
+ domElems.statusWS.innerHTML = 'Disconnected';
+ domElems.statusWS.style.color = 'orange';
//TODO $('').textContent = err;
}
socket.onopen = (err) => {
log('connected');
+ domElems.statusWS.innerHTML = 'Connected';
+ domElems.statusWS.style.color = 'green';
if (err) console.log(err);
//TODO $('').textContent = 'Connected';
socket.pingTimeout = 1000;
socket.pingInterval = 500;
setInterval(() => {
- socket.send(JSON.stringify({action: 'update_pos', data: {pos: me, nick: myNickname}}));
+ send('update_pos', {pos: me, nick: myNickname});
}, 100);
}
/*socket.addEventListener("open", (ev)=>{
@@ -250,11 +259,9 @@ function connectWebSocket(){
socket.onmessage = (msg) => {
- console.log(msg);
try {
// The data is in the .data property of the message event
const m = JSON.parse(msg.data);
- console.log('Parsed message:', m);
switch (m.action) {
case 'init':
myID = m.data;
@@ -271,7 +278,7 @@ function connectWebSocket(){
}
} catch (error) {
console.error('Error parsing message:', error);
- socket.send(JSON.stringify({ error: 'Invalid message format' }));
+ send('error', 'Invalid message format');
return;
}
}
@@ -351,6 +358,15 @@ function handleMouseMove(e) {
me = getMousePos(cnv, e);
}
+function send(action, payload){
+ if (socket != null && socket.readyState === WebSocket.OPEN) {
+ try {
+ socket.send(JSON.stringify({action: action, data: payload}));
+ } catch (e) {
+ console.error('Error sending message:', e);
+ }
+ }
+}
function log(msg, lvl=1){
if (domElems.debugInfo){