Files
scrabble-online/client/public/game/init.js
2021-04-03 01:53:21 +01:00

71 lines
1.9 KiB
JavaScript

const ConnectionState = document.querySelector('#connection-state');
ConnectionState.innerHTML = localeString('connection-waiting');
const socket = io(window.location.host);
// do not to be locale-ised because they do not communicate information
// to the user and are technical in nature
socket.on('connect', (...args) => {
console.log('Socket Connected');
ConnectionState.innerHTML = 'Waiting for identify'
});
socket.on('disconnect', (...args) => {
console.log('Socket Disconnected');
ConnectionState.innerHTML = 'Disconnected'
onDisconnect();
});
socket.on('identify', (...args) => {
ConnectionState.innerHTML = 'Identify recived'
if (!sessionStorage.user)
{
socket.disconnect();
ConnectionState.innerHTML = 'Identify cannot proceed, no user';
document.location.href += '../';
return;
}
// If, for some reason, the user in sessionstorage was corrupted
// TODO: Session storage error object to display on the login screen
let user = {};
try
{
user = JSON.parse(sessionStorage.user);
} catch (e)
{
socket.disconnect();
ConnectionState.innerHTML = 'Identify cannot proceed, corrupted user';
document.location.href += '../';
return;
}
if (!user.uid)
{
socket.disconnect();
ConnectionState.innerHTML = 'Identify cannot proceed, corrupted user';
document.location.href += '../';
return;
}
socket.emit('identify', { userid: user.uid, intent: 'LOBYING' });
ConnectionState.innerHTML = 'Identify response';
});
socket.on('identify-success', (...args) => {
console.log(args[0]);
ConnectionState.innerHTML = localeString('status-connected-as') + args[0].user.username;
onConnect();
});
socket.on('identify-error', (...args) => {
console.log(args[0]);
ConnectionState.innerHTML = JSON.stringify(args[0]);
onDisconnect();
});