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"}); } });