2012-10-30 2 views
0

J'ai quelques problèmes dans la manipulation d'un réseau obtenu dans la fonction de rappel à travers websocketsProblèmes liés à la manipulation d'un réseau obtenu à partir du serveur avec les sockets web

code côté serveur

var io = require('socket.io').listen(app); 

io.sockets.on('connection', function (socket) { 
    var currentTime = new Date().getTime(); 
    var startTime = currentTime - (5*60*1000); 
    step = 30*1000; 
    var stats = []; 
    stats["values"] = [1, 2, 3, 4, 3, 4, 5, 8, 2, 3, 4, 1]; 
    stats["start"] = startTime; 
    stats["end"] = currentTime; 

    socket.emit('initial', { stats: stats }); 
    socket.on('echo', function (data) { 

    }); 
}); 

code côté client

var data; 

socket.on('initial', function (stats) { 
    data = stats.stats; 
}); 

Maintenant, lorsque j'essaie de manipuler la variable de données.Comme à l'aide de pousser et de décalage

data.values.push(10); 
data.values.shift(); 

Je m'y attendais d'avoir

2, 3, 4, 3, 4, 5, 8, 2, 3, 4, 1, 10

Mais je ne sais pas le fonctionnement de changement supprime complètement tous les éléments et je reçois seulement 10 restant dans le tableau. Qu'est-ce qui ne va pas?

Répondre

0

vous obtiendrez votre objet de réponse {stats: stats}, mais vous êtes intéressé par la propriété stats:

var data; 

socket.on('initial', function (obj) { 
    data = obj.stats; 
}); 
+0

@Irsjng. C'est ce que j'ai fait. Désolé j'ai mal tapé dans le code. Je l'ai réparé maintenant. La chose est que même si je fais cela, ça ne marche pas. Lorsque j'essaie de manipuler l'objet de données en utilisant shift. Il supprime tous les éléments – user31820

+0

Etes-vous sûr que le tableau était vraiment rempli avant? – lrsjng

+0

Ouais. Je suis sûr que – user31820

Questions connexes