open_tavern/assets/web/socket.js

24 lines
620 B
JavaScript

const tavern = {
socket: socket = new WebSocket('ws://localhost:3001/ws'),
connected: false,
loggedIn: false,
call: (f, ...args) => {
if(typeof(f) == "function") {
f(...args);
}
}
};
tavern.socket.onopen = () => tavern.connected = true;
tavern.socket.onmessage = (m) => {
m = JSON.parse(m.data);
console.log(m);
if(m.login) {
tavern.socket.loggedIn = m.login.success;
tavern.call(tavern.onlogin, tavern.socket.loggedIn);
}
}
tavern.login = (username, password) => {
if(!tavern.connected || tavern.loggedIn) { return false; }
tavern.socket.send(JSON.stringify({ login: { username, password }}));
}