我想了解爲什麼我的indexOf不工作!實際上,每當用戶加載網站的頁面時,服務器都會收到包含一個(就目前而言)值的變量「data」:用戶的名稱。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將只完成...他在每次頁面加載或刷新後都推送用戶...
以下是連接方式和usersInfos的聲明:
var connected = [];
var usersInfos = {};
請幫幫我,我會殺了人!
對不起慢!我不明白......實際上,數據被解析爲「var data = JSON.parse(data)」,所以在「connected.indexOf(data.name)」「connected」被解析並且「data」也被解析! –
是的,'data'是一個解析對象,但是'JSON.stringify(usersInfos)'顯然不是。 – Bergi