Я пытаюсь понять, почему мой indexOf не работает! Собственно, каждый раз, когда пользователь загружает страницу веб-сайта, сервер получает переменную «данные», которая содержит одно (только на данный момент) значение: имя пользователя.NodeJS Socket.IO: indexOf не работает
client.js:
$.ajax({
type: "POST",
url: "ajax.php",
data: {
ajaxRequest: "userInfos"
},
success: function(data){
var data = JSON.parse(data);
var userInfos = {
name: data.username,
}
socket.emit('pong',JSON.stringify(userInfos));
}
});
server.js:
client.on('pong',function(data){
var data = JSON.parse(data);
if(data.name != null) { // On s'assure qu'il est connecté
/** VARIABLES SESSION **/
client.set("name",data.name);
client.set("id",client.id);
/** VARIABLES SESSION **/
if(connected.indexOf(data.name) == -1){ // Si il n'est pas dans le tableau
var usersInfos = {
name: data.name,
id: client.id
};
io.sockets.emit('pong',JSON.stringify(usersInfos));
connected.push(JSON.stringify(usersInfos)); // On remet son pseudo
console.log("[PONG] "+data.name+" ("+client.id+") est connecté");
}
}
});
Так usersInfos будет завершена только если пользователь уже не существует в объекте, но на самом деле, не работает ... Он нажимает пользователя после каждой загрузки или обновления страницы ...
Вот как заявлены подключения и пользователиInfos:
var connected = [];
var usersInfos = {};
Пожалуйста, помогите мне, я убью кого-нибудь!
Извините за задержку ! Я не понял ... На самом деле данные анализируются «var data = JSON.parse (data)», поэтому в «connected.indexOf (data.name)» «подключено» также анализируется и «данные»! –
Да, 'data' является анализируемым объектом, но' JSON.stringify (usersInfos) 'явно не является. – Bergi