nodePong/client/lib/socket/socketio_handler.js

106 lines
2.6 KiB
JavaScript
Raw Normal View History

2016-02-13 14:49:19 +01:00
/**
* @file SocketIO.js
* @author frtk
*/
NPGClient.SocketIO = {
// Connection to server
conn_nAttempts: 0,
conn_IntervalID: 0,
socket: {},
isConnected: false,
// start connection loop
initConnectLoop: function() {
var self = this;
console.log();
self.startConnectLoop();
},
2016-02-14 04:37:31 +01:00
2016-02-13 14:49:19 +01:00
// start connection loop
startConnectLoop: function() {
var self = this;
self.conn_IntervalID = setInterval(function() { self.connect(); }, 1500);
},
2016-02-14 04:37:31 +01:00
2016-02-13 14:49:19 +01:00
// stop connection loop
stopConnectLoop: function() {
var self = this;
clearInterval(self.conn_IntervalID);
self.conn_IntervalID = 0;
self.conn_nAttempts = 0;
},
2016-02-14 04:37:31 +01:00
2016-02-13 14:49:19 +01:00
// connect socket
connect: function() {
var self = this;
// check for connection
if (self.isConnected) {
return false;
}
//
if (typeof io !== 'object') {
//console.log('[NPGClient.SocketIO] io object is unknown');
}
if ((typeof self.socket.socket === 'undefined')) {
console.log('[NPGClient.SocketIO] attempting server connection...');
self.socket = io.connect();
self.defineSocketMsgs();
} else if (!self.socket.socket.connected && !self.socket.socket.connecting) {
console.log('[NPGClient.SocketIO] attempting server connection...');
self.socket.socket.connect();
}
},
2016-02-14 04:37:31 +01:00
2016-02-13 14:49:19 +01:00
// Define Socket Messages
defineSocketMsgs: function() {
var self = this;
2016-02-13 14:49:19 +01:00
if (typeof self.socket === 'undefined') {
return false;
}
NPGClient.Utils.log('Deploying socket object features');
2016-02-13 14:49:19 +01:00
// 'connecting'
self.socket.on('connecting', function () {
NPGClient.Utils.log(' Connecting ...');
2016-02-13 14:49:19 +01:00
});
2016-02-13 14:49:19 +01:00
// 'connect'
self.socket.on('connect', function() {
NPGClient.Utils.log(' Connected to server');
2016-02-13 14:49:19 +01:00
self.stopConnectLoop();
self.isConnected = true;
});
2016-02-13 14:49:19 +01:00
// 'disconnect'
self.socket.on('disconnect', function() {
NPGClient.Utils.log(' > Server: socket disconnected');
2016-02-13 14:49:19 +01:00
self.startConnectLoop();
self.isConnected = false;
});
// 'regDone'
self.socket.on('regDone', function() {
NPGClient.Utils.log(' > Server: User registration done');
2016-02-17 01:37:52 +01:00
//NPGClient.PageHandler.moveToPage(NPGClient.STARTMENU.NAME);
NPGClient.PageHandler.setCurrPage(NPGClient.STARTMENU.NAME);
2016-02-13 14:49:19 +01:00
});
// 'regNameTaken'
self.socket.on('regNameTaken', function() {
NPGClient.Utils.log(' > Server: login name already used.');
NPGClient.PageHandler.moveToPage(NPGClient.LOGIN.NAME);
});
2016-02-17 01:37:52 +01:00
},
2016-02-14 04:37:31 +01:00
// send message to server
sendMsg: function(name, data) {
var self = this;
self.socket.emit(name, data);
2016-02-13 14:49:19 +01:00
}
};