Problema em chamar var dentro do switch
Olá povoestou tendo um problema e não estou descobrindo oque eu estou fazendo de errado.
Eu criei um var = currentUser;
Em seguida no switch, dentro de um case: "LOGAR" eu queria chamar a currentUser para receber uns valores
E depois em outro case: "PING2" eu queria trabalhar com os dados que salvei na currentUser.
Eu percebi alguns problemas que no case: "PING2" A currentUser estava vazia, mais no case "LOGAR" ela realmente recebeu os valores usei um console.log para ter certeza que foram salvas.
eu estou com duvidas se no case: "LOGAR" eu chamei o var currentUser de forma correta, porque ele só tem valores dentro dele apenas no case: "LOGAR" nos outros case ele fica vazio
var shortId = require('shortid');//import shortid lib
var dgram = require('dgram');// importa a biblioteca do node para sockets UDP
var socket = dgram.createSocket('udp4');
var clients = [];//storage clients
var clientLookup = {};// cliends search engine
var sockets = {};//storage sockets
var database_model = require('./Models/database_model');
database_model.connect(function (err_connect) {
});
socket.on('message', function(message,datagram_info) {//"message" armazena o pacote JSON, "datagram_info" armazena o IP e a PORTA do cliente
//que fez a abertura do socket (ex: 127.0.0.1 e 8080)
console.log('O servidor recebeu uma messagem: '+message+' de '+datagram_info.address);
var data = JSON.parse(message);//converte o conteudo do pacote JSON message
var currentUser;// nao ta recebendo nada não sei porque.
switch(data.id )
{
//começa
case "PING"://se estivessemos utlizando TCP seria socket.on('PING',function(){ //processamento do socket}); como eu faco em
console.log(currentUser);
console.log('[INFO] teste ping foi recebido !!! ');
var response = "PONG"+','+"pong!!!"+','+"test";//formata os dados com o separador virgula para serem enviados de volta ao Sender
var msg = new Buffer(response);//bufering
console.log('send response to client');
//enviando para o cliente, Sending Messages Back to Sender "Socket.Emit"
socket.send(msg,
0,
msg.length,
datagram_info.port,//port of Sender
datagram_info.address//IP of Sender
);
break;
//termina
case "LOGAR":
console.log('[INFO] Player: ' + data.nome + ', ' + data.senha + ' connected!');
database_model.verify_fk1(data.nome, data.senha, function ( result)
{
if (result == true)
{
console.log("Os Dados do usuario estão corretos");
console.log('[INFO] O usuario ' + data.nome + ' conectou. Carregando informações ... !');
var response = "RespostaLOGAR"+','+"TODOS OS DADOS FORAM CARREGADOS COM SUSSESSO, você ESTA LIBERADO PARA SELEÇÃO DE PERSONAGEM";
var msg = new Buffer(response);
console.log('O pacote de reposta do login com sussesso foi enviada');
socket.send(msg,
0,
msg.length,
datagram_info.port,//port of Sender
datagram_info.address//IP of Sender
);
database_model.carregardados(data.nome, function (err, rows){
if (err) { console.error(err); }
console.log('[INFO] cheguei com os dados: **************');
console.log('Cli_id: '+rows[0].cli_id);
console.log('cli_personagem1: '+ rows[0].cli_personagem1);
console.log('cli_personagem2: '+ rows[0].cli_personagem2);
console.log('cli_personagem3: '+ rows[0].cli_personagem3);
console.log('cli_personagem4: '+ rows[0].cli_personagem4);
console.log('[INFO] fim **************');
currentUser =
{
name:data.nome,
id:shortId.generate(),
socketID:socket.id,
pass:data.senha,
port:datagram_info.port,
address:datagram_info.address,
cliID:rows[0].cli_id,
cliPERID1:rows[0].cli_personagem1,
cliPERID2:rows[0].cli_personagem2,
cliPERID3:rows[0].cli_personagem3,
cliPERID4:rows[0].cli_personagem4
}
clients.push(currentUser);//add currentUser in clients list
clientLookup[currentUser.id] = currentUser;//add client in search engine
sockets[currentUser.socketID] = socket;//add currentUser socket
console.log('Dados armazenados no currentUser: '+currentUser.id+','
+currentUser.name+','
+currentUser.pass+','
+currentUser.cliID+','
+currentUser.cliPERID1+','
+currentUser.cliPERID2+','
+currentUser.cliPERID3+','
+currentUser.cliPERID4+',');
console.log('Total players: ' + clients.length);
var response = "RespostaLOGAR2"+','+currentUser.id;
var msg = new Buffer(response);
console.log('O pacote de reposta do login com sussesso foi enviada');
socket.send(msg,
0,
msg.length,
datagram_info.port,//port of Sender
datagram_info.address//IP of Sender
);
});
}
else
{
console.log("Loguin ou senha incorretos");
var response = "INCORRECT_PASS"+','+"Usuario ou senha estão incorretos";
var msg = new Buffer(response);
console.log('pacote de erro no loguin enviado');
socket.send(msg,
0,
msg.length,
datagram_info.port,//port of Sender
datagram_info.address//IP of Sender
);
}
});
break;
case "PING2":
console.log(currentUser);;
console.log('[INFO] nome do per foi pedido');
var response = "PONG2"+','+"casa";//aqui
var msg = new Buffer(response);//bufering
console.log('send response to client');
//enviando para o cliente, Sending Messages Back to Sender "Socket.Emit"
socket.send(msg,
0,
msg.length,
datagram_info.port,//port of Sender
datagram_info.address//IP of Sender
);
break;
}//END-SWITCH
});
Discussão (3)
Carregando comentários...