client identify
This commit is contained in:
@@ -2,6 +2,7 @@ const Logger = require('./logger.js');
|
||||
const Server = require('./webserver.js');
|
||||
|
||||
const Crypto = require("crypto");
|
||||
const { CONNREFUSED } = require('dns');
|
||||
|
||||
/*
|
||||
USER OBJECT
|
||||
@@ -11,6 +12,8 @@ USER OBJECT
|
||||
ip: ip,
|
||||
// REGISTERED, CONNECTED, DISCONNECTED, INGAME
|
||||
state: 'REGISTERED',
|
||||
// LOBYING, GAME, UNDECIDED
|
||||
intent: 'LOBYING',
|
||||
// Doesn't update if state changes
|
||||
connectionid: 'none',
|
||||
}
|
||||
@@ -110,12 +113,19 @@ function UserConnect(userid, connectionid)
|
||||
{
|
||||
if (OnlineUsers[userid].state === 'CONNECTED') return 'User Connected';
|
||||
|
||||
OnlineUsers[userid].connectionid = connectionid;
|
||||
OnlineUsers[userid].state = 'CONNECTED';
|
||||
|
||||
Logger.info(`SOCKET ${connectionid} IDENTIFIED AS ${userid}`);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function UserDisconnect(userid, connectionid)
|
||||
function UserDisconnect(userid)
|
||||
{
|
||||
if (!OnlineUsers[userid]) return false;
|
||||
if (OnlineUsers[userid].state === 'DISCONNECTED') return false; // no change
|
||||
OnlineUsers[userid].state = 'DISCONNECTED';
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -76,15 +76,20 @@ function ClientIdentify(socket, args)
|
||||
|
||||
// TODO: Sort out client intent
|
||||
|
||||
const status = Game.Registrar.UserConnect(userid, socket.id);
|
||||
const status = Game.Registrar.UserConnect(user.uid, socket.id);
|
||||
|
||||
if (status === true)
|
||||
{
|
||||
socket.emit('identify-success', {connected: true, user: user});
|
||||
return;
|
||||
}
|
||||
else if (status === 'User Connected')
|
||||
{
|
||||
err.addError(500, 'Internal Server Error', 'User already connected');
|
||||
socket.emit('identify-error', err.toError);
|
||||
return;
|
||||
} else
|
||||
{
|
||||
// TODO: wrong error
|
||||
err.addError(500, 'Internal Server Error', 'Socket busy');
|
||||
socket.emit('identify-error', err.toError);
|
||||
return;
|
||||
@@ -96,7 +101,7 @@ function HandleDisconnect(socket, args)
|
||||
Logger.debug(`${socket.id} DISCONNECTED`);
|
||||
const user = Game.Registrar.GetUserbyConnection(socket.id);
|
||||
if (!user) return;
|
||||
Game.Registrar.UserDisconnect(user.id, socket.id);
|
||||
Game.Registrar.UserDisconnect(user.uid);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user