server/www/connect.js

43 lines
1007 B
JavaScript

window.addEventListener('load', function() {
var ws = new WebSocket('ws://' + window.location.hostname + '/play/');
var lib = Lib(ws);
var room = Room(document.getElementById('players'), lib);
var login = Login(document.getElementById('login'), lib);
var debug = document.getElementById('debug');
setTimeout(ping, 20000);
ws.addEventListener('message', function(event) {
var o = JSON.parse(event.data);
switch(o.tag) {
case "Welcome":
room.populate(o.room);
break;
case "Pong":
setTimeout(ping, 10000);
break;
case "Relay":
relayedMessage(o)
break;
default:
debug.textContent = event.data;
}
});
function relayedMessage(o) {
switch(o.message.tag) {
case "LogIn":
room.enter(o.from);
login.onLogIn(o.from);
break;
case "LogOut":
room.leave(o.from);
login.onLogOut(o.from);
break;
}
}
function ping() {
lib.send({tag: "Ping"});
}
});