sperren Wenn ich ein globales Array haben:Wie ein globales Array in socket.io
var users = new Array();
Und ich möchte dieses Array unter allen meinen Kunden halten:
socket.on('connect', function() {
users.push(socket.id);
});
socket.on('disconnect', function() {
users.splice(users.indexOf(socket.id), 1);
});
Was, wenn ich Eine weitere Funktion:
socket.on('new_score', function(s) {
for (u in users) {
...
do some processing
...
io.sockets.connected[users[u]].emit('new_score', socket.id, s);
...
do some processing
...
}
});
Da socket.io asynchron ist, von der Zeit, die ich in dieser letzten Funktion emittieren nennen, kann der Benutzer in disconnect gelöscht wurden .
Also muß ich einen Weg, um sicher die Array Zugriff mit all diesen anderen Funktionen asynchron zu manipulieren ...
Es hängt davon ab, was _ "einige Verarbeitung" bedeutet eigentlich. – robertklep
, d. H. Es tut etwas, das eine Weile dauert, bis es fertig ist. – lombrozo
Bedeutet das, dass die Verarbeitung asynchron ist? – robertklep