106 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @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();
 | |
|   },
 | |
| 
 | |
|   // start connection loop
 | |
|   startConnectLoop:  function() { 
 | |
|     var self = this;
 | |
|     self.conn_IntervalID = setInterval(function() { self.connect(); }, 1500); 
 | |
|   },
 | |
| 
 | |
|   // stop connection loop
 | |
|   stopConnectLoop:  function() { 
 | |
|     var self =  this;
 | |
|     clearInterval(self.conn_IntervalID);
 | |
|     self.conn_IntervalID = 0;
 | |
|     self.conn_nAttempts = 0;
 | |
|   },
 | |
| 
 | |
|   // 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();   
 | |
|     }
 | |
|   },
 | |
| 
 | |
|   // Define Socket Messages
 | |
|   defineSocketMsgs: function() {
 | |
|     var self = this;  
 | |
| 
 | |
|     if (typeof self.socket === 'undefined') {
 | |
|       return false;
 | |
|     }
 | |
|     NPGClient.Utils.log('Deploying socket object features');
 | |
| 
 | |
|     // 'connecting' 
 | |
|     self.socket.on('connecting', function () {
 | |
|       NPGClient.Utils.log(' Connecting ...');
 | |
|     });
 | |
| 
 | |
|     // 'connect'
 | |
|     self.socket.on('connect', function() {
 | |
|       NPGClient.Utils.log(' Connected to server');
 | |
|       self.stopConnectLoop();
 | |
|       self.isConnected = true;
 | |
|     });
 | |
| 
 | |
|     // 'disconnect'
 | |
|     self.socket.on('disconnect', function() {
 | |
|       NPGClient.Utils.log(' > Server: socket disconnected');
 | |
|       self.startConnectLoop();
 | |
|       self.isConnected = false;
 | |
|     });      
 | |
| 
 | |
|     // 'regDone'
 | |
|     self.socket.on('regDone', function() {
 | |
|       NPGClient.Utils.log(' > Server: User registration done');
 | |
|       //NPGClient.PageHandler.moveToPage(NPGClient.STARTMENU.NAME);
 | |
| 	NPGClient.PageHandler.setCurrPage(NPGClient.STARTMENU.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
 | |
|   sendMsg: function(name, data) {
 | |
|     var self = this;  
 | |
|     self.socket.emit(name, data);
 | |
|   }
 | |
|   
 | |
| };
 |