v0.1.5 - user registration & login page done
This commit is contained in:
parent
d613a4c0e2
commit
38c6c5c311
@ -11,11 +11,31 @@ NPGClient.PageHandler = {
|
|||||||
//
|
//
|
||||||
setup: function() {
|
setup: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
self.currPage = 'login';
|
self.currPage = NPGClient.LOGIN.NAME;
|
||||||
// create login page
|
// create login page
|
||||||
self.createLoginPage();
|
self.createLoginPage();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
setCurrPage: function(n) {
|
||||||
|
var self = this;
|
||||||
|
self.currPage = n;
|
||||||
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
moveToPage: function(n) {
|
||||||
|
var self = this;
|
||||||
|
switch (n) {
|
||||||
|
case NPGClient.LOGIN.NAME:
|
||||||
|
NPGClient.Utils.resetName();
|
||||||
|
NPGClient.PageHandler.getCurrPageUIElemByName('login_cursor').reset();
|
||||||
|
self.setCurrPage(NPGClient.LOGIN.NAME);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
//
|
//
|
||||||
getCurrPageUIElems: function() {
|
getCurrPageUIElems: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -40,7 +40,7 @@ NPGClient.evtHandler = {
|
|||||||
//self.sendToMenuPage(); // back to previous page
|
//self.sendToMenuPage(); // back to previous page
|
||||||
} else {
|
} else {
|
||||||
switch (NPGClient.PageHandler.currPage) {
|
switch (NPGClient.PageHandler.currPage) {
|
||||||
case 'login':
|
case NPGClient.LOGIN.NAME:
|
||||||
self.userLogin(evt);
|
self.userLogin(evt);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -62,7 +62,7 @@ NPGClient.evtHandler = {
|
|||||||
case NPGClient.KEYS.ENTER:
|
case NPGClient.KEYS.ENTER:
|
||||||
if (NPGClient.SocketIO.isConnected) {
|
if (NPGClient.SocketIO.isConnected) {
|
||||||
if (NPGClient.userName.length != 0) {
|
if (NPGClient.userName.length != 0) {
|
||||||
NPGClient.SocketIO.sendMsg('registration', NPGClient.userName);
|
NPGClient.SocketIO.sendMsg('regRequest', NPGClient.userName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
NPGClient.Utils.resetName();
|
NPGClient.Utils.resetName();
|
||||||
|
@ -36,6 +36,7 @@ NPGClient.KEYS = {
|
|||||||
NPGClient.pageCount = -1;
|
NPGClient.pageCount = -1;
|
||||||
// Login Page
|
// Login Page
|
||||||
NPGClient.LOGIN = {
|
NPGClient.LOGIN = {
|
||||||
|
NAME: 'login',
|
||||||
SERVSTATUS: {
|
SERVSTATUS: {
|
||||||
'text': {
|
'text': {
|
||||||
'online' : 'server: online',
|
'online' : 'server: online',
|
||||||
|
@ -56,27 +56,44 @@ NPGClient.SocketIO = {
|
|||||||
// Define Socket Messages
|
// Define Socket Messages
|
||||||
defineSocketMsgs: function() {
|
defineSocketMsgs: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (typeof self.socket === 'undefined') {
|
if (typeof self.socket === 'undefined') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
console.log('[NPGClient.SocketIO] deploying socket object features.');
|
NPGClient.Utils.log('Deploying socket object features');
|
||||||
|
|
||||||
// 'connecting'
|
// 'connecting'
|
||||||
self.socket.on('connecting', function () {
|
self.socket.on('connecting', function () {
|
||||||
console.log('[NPGClient.SocketIO] connecting ...');
|
NPGClient.Utils.log(' Connecting ...');
|
||||||
});
|
});
|
||||||
|
|
||||||
// 'connect'
|
// 'connect'
|
||||||
self.socket.on('connect', function() {
|
self.socket.on('connect', function() {
|
||||||
console.log('[NPGClient.SocketIO] connected to server');
|
NPGClient.Utils.log(' Connected to server');
|
||||||
self.stopConnectLoop();
|
self.stopConnectLoop();
|
||||||
self.isConnected = true;
|
self.isConnected = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 'disconnect'
|
// 'disconnect'
|
||||||
self.socket.on('disconnect', function() {
|
self.socket.on('disconnect', function() {
|
||||||
console.log('[NPGClient.SocketIO] > Server: socket disconnected.');
|
NPGClient.Utils.log(' > Server: socket disconnected');
|
||||||
self.startConnectLoop();
|
self.startConnectLoop();
|
||||||
self.isConnected = false;
|
self.isConnected = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 'regDone'
|
||||||
|
self.socket.on('regDone', function() {
|
||||||
|
NPGClient.Utils.log(' > Server: User registration done');
|
||||||
|
//NPGClient.PageHandler.moveToPage(NPGClient.LOGIN.NAME);
|
||||||
});
|
});
|
||||||
},
|
|
||||||
|
// 'regNameTaken'
|
||||||
|
self.socket.on('regNameTaken', function() {
|
||||||
|
NPGClient.Utils.log(' > Server: login name already used.');
|
||||||
|
NPGClient.PageHandler.moveToPage(NPGClient.LOGIN.NAME);
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
// send message to server
|
// send message to server
|
||||||
sendMsg: function(name, data) {
|
sendMsg: function(name, data) {
|
||||||
|
@ -5,6 +5,15 @@
|
|||||||
|
|
||||||
NPGClient.Utils = {
|
NPGClient.Utils = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UI draw
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
log: function(t) {
|
||||||
|
console.log('[NPGClient]' + t);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UI draw
|
* UI draw
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "npg_app.js",
|
"name": "npg_app.js",
|
||||||
"version": "0.1.4",
|
"version": "0.1.5",
|
||||||
"description": "Multiplayer online Pong Game using nodejs and socket.io",
|
"description": "Multiplayer online Pong Game using nodejs and socket.io",
|
||||||
"directories": {
|
"directories": {
|
||||||
"server": "server",
|
"server": "server",
|
||||||
|
@ -34,10 +34,12 @@ var NPGServer = {
|
|||||||
self.version = o.VERSION || '';
|
self.version = o.VERSION || '';
|
||||||
self.host = o.HTTP.host || '';
|
self.host = o.HTTP.host || '';
|
||||||
self.port = o.HTTP.port || 8042;
|
self.port = o.HTTP.port || 8042;
|
||||||
|
//
|
||||||
|
self.users = [];
|
||||||
|
//
|
||||||
self.log('$ ##### nodePong - v'+self.version);
|
self.log('$ ##### nodePong - v'+self.version);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
//--- setVersion(s)
|
//--- setVersion(s)
|
||||||
setVersion: function(s) {
|
setVersion: function(s) {
|
||||||
this.version = s;
|
this.version = s;
|
||||||
@ -45,12 +47,12 @@ var NPGServer = {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Server Messages
|
* Server logs
|
||||||
*/
|
*/
|
||||||
//---
|
//---
|
||||||
log: function(msg) {
|
log: function(msg) {
|
||||||
var self = this;
|
var self = this;
|
||||||
return console.log(self.newDateToString() + msg);
|
return console.log(self.newDateToString() + '$ ' + msg);
|
||||||
},
|
},
|
||||||
//--- dateToString
|
//--- dateToString
|
||||||
dateToString: function(date) {
|
dateToString: function(date) {
|
||||||
@ -92,29 +94,168 @@ var NPGServer = {
|
|||||||
socketHandling: function(io) {
|
socketHandling: function(io) {
|
||||||
var self = this;
|
var self = this;
|
||||||
io.sockets.on('connection', function (socket) {
|
io.sockets.on('connection', function (socket) {
|
||||||
//
|
|
||||||
self.log('$ User connected : id=' + socket.id);
|
|
||||||
|
|
||||||
// 'disconnect'
|
// 'disconnect'
|
||||||
socket.on('disconnect', function () { self.log('$ User disconnected : id=' + socket.id);
|
socket.on('disconnect', function () {
|
||||||
|
self.clientDisconnect(socket.id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 'registration'
|
||||||
|
socket.on('regRequest', function (data) {
|
||||||
|
self.userRegistration(data, socket);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Socket handling utils
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
userRegistration : function(data, socket) {
|
||||||
|
var self = this;
|
||||||
|
self.log('[Client:' + socket.id + '] New user registration attempt: name=' + data);
|
||||||
|
if (!self.isNewUser(data)) {
|
||||||
|
self.resetClientUI(socket);
|
||||||
|
self.log('Server: User name already taken - reseting client UI');
|
||||||
|
} else {
|
||||||
|
self.createUser(data, socket);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
self.updateClientsServerInfo(); // update all clients info
|
||||||
|
io.sockets.sockets[socketId].emit('playerCreated'); // send socket msg
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
clientDisconnect : function(id) {
|
||||||
|
var self = this;
|
||||||
|
var u = self.getUserBySocketId(id);
|
||||||
|
if (self.isUser(id)) {
|
||||||
|
self.log('[Client:' + id + '] User ' + u.name + ' disconnected');
|
||||||
|
self.deleteUser(u.name);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* User handling utils
|
||||||
|
*/
|
||||||
|
//---
|
||||||
|
sendMsgToSocket: function(socket, msg, data) {
|
||||||
|
if (data !== undefined) {
|
||||||
|
socket.emit(msg);
|
||||||
|
} else {
|
||||||
|
socket.emit(msg, data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//---
|
||||||
|
isNewUser: function(name) {
|
||||||
|
var self = this;
|
||||||
|
var isNew = true;
|
||||||
|
self.log('Server: Checking if player name is already used');
|
||||||
|
for (u in self.users) {
|
||||||
|
if (self.users[u].name == name) isNew = false;
|
||||||
|
}
|
||||||
|
return isNew;
|
||||||
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
isUser: function(id) {
|
||||||
|
var self = this;
|
||||||
|
var isOn = false;
|
||||||
|
for (u in self.users) {
|
||||||
|
if (self.users[u].socket.id == id) isOn = true;
|
||||||
|
}
|
||||||
|
return isOn;
|
||||||
|
},
|
||||||
|
|
||||||
|
//---
|
||||||
|
getUserByName: function(name) {
|
||||||
|
var self = this;
|
||||||
|
for (u in self.users) {
|
||||||
|
if (self.users[u].name == name) return self.users[u];
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
|
||||||
|
//---
|
||||||
|
getUserBySocketId: function(id) {
|
||||||
|
var self = this;
|
||||||
|
for (u in self.users) {
|
||||||
|
if (self.users[u].socket.id == id) return self.users[u];
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
resetClientUI: function(socket) {
|
||||||
|
var self = this;
|
||||||
|
self.sendMsgToSocket(socket, 'regNameTaken');
|
||||||
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
createUser: function(name, socket) {
|
||||||
|
var self = this;
|
||||||
|
self.log('Server: New player registered, name=' + name + ' socketId= '+ socket.id);
|
||||||
|
self.users.push(new User(name, socket));
|
||||||
|
self.log('Server: number of players: n= ' + self.users.length);
|
||||||
|
self.log('Server: player registered, send user ' + name + ' to menu page.');
|
||||||
|
// send user auth
|
||||||
|
self.sendMsgToSocket(socket, 'regDone');
|
||||||
|
},
|
||||||
|
|
||||||
|
removeDuplicateUser: function(name) {
|
||||||
|
var self = this;
|
||||||
|
self.log('Server: player already registered, removing duplicate.');
|
||||||
|
},
|
||||||
|
|
||||||
|
//
|
||||||
|
deleteUser: function(name) {
|
||||||
|
var self = this;
|
||||||
|
for (u in self.users) {
|
||||||
|
if (self.users[u].name == name) {
|
||||||
|
self.users[u].sendMsg('removedUser');
|
||||||
|
self.users.splice(u,1);
|
||||||
|
self.log('Server - Removed user ' + name);
|
||||||
|
self.log('Server - Number of players: n= ' + self.users.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* nodePong User Object
|
* nodePong User Object
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
var User = function(name) {
|
var User = function(name, socket) {
|
||||||
|
|
||||||
|
//
|
||||||
|
this.name = (name !== undefined) ? name : '';
|
||||||
|
this.socket = (socket !== undefined) ? socket : '';
|
||||||
|
//
|
||||||
|
this.status = '';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
//
|
||||||
|
User.prototype.constructor = User;
|
||||||
|
//
|
||||||
|
User.prototype.sendMsg = function(msg, data) {
|
||||||
|
var self = this;
|
||||||
|
self.socket.emit(msg, data);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var Config = {
|
var Config = {
|
||||||
VERSION : '0.1.4',
|
VERSION : '0.1.5',
|
||||||
HTTP: {
|
HTTP: {
|
||||||
host: '127.0.0.1',
|
host: '127.0.0.1',
|
||||||
port: 8042
|
port: 8042
|
||||||
|
20
version.md
20
version.md
@ -1,3 +1,23 @@
|
|||||||
|
### **v0.1.5:**
|
||||||
|
--------------------------
|
||||||
|
focus: client/server user registration
|
||||||
|
--------------------------
|
||||||
|
---- added socket messages in npg_server.js and client/lib/socket/socketio_handler.js
|
||||||
|
'regRequest' server socket msg
|
||||||
|
'regDone' client socket message
|
||||||
|
'regNameTaken' client socket message
|
||||||
|
----
|
||||||
|
Added user handling utilities {
|
||||||
|
userRegistration
|
||||||
|
clientDisconnect
|
||||||
|
}
|
||||||
|
---- added User object on server
|
||||||
|
check if user already exist and handle issues
|
||||||
|
----
|
||||||
|
user disconnection handling (server & client)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### **v0.1.4:**
|
### **v0.1.4:**
|
||||||
--------------------------
|
--------------------------
|
||||||
focus: client ui lib
|
focus: client ui lib
|
||||||
|
Loading…
Reference in New Issue
Block a user