hi!
ich schreibe einen chat, beim dem rechts eine online(benutzer)liste ausgegeben wird.
leider gibt er mir nur beim login (1x IE und danach login mit FF (und anderem testkonto)) die korrekte ID aus:
Admin / 1
Testnutzer / 3
wenn ich dann beim IE F5 drücke, wird:
1. der nutzer aus der onlineliste entfernt (weil ja der browser für 1ms ja die verbindung abgebrochen hat, für den reload).
2. wieder rein genommen (als "neuer" login)
dann sieht die onlineliste so aus:
Admin / 3 (falsch, da admin die ID 1 hat)
Testnutzer / 1 (falsche ID)
bei der ausgabe im chatfenster für die unterhaltungen wird trotzdem immer die korrekte ID mit ausgegeben:
wo liegt da das problem?
oder gibt es eine andere variante die daten an den client zu senden (ohne den object.key befehl)?
ich schreibe einen chat, beim dem rechts eine online(benutzer)liste ausgegeben wird.
leider gibt er mir nur beim login (1x IE und danach login mit FF (und anderem testkonto)) die korrekte ID aus:
Admin / 1
Testnutzer / 3
wenn ich dann beim IE F5 drücke, wird:
1. der nutzer aus der onlineliste entfernt (weil ja der browser für 1ms ja die verbindung abgebrochen hat, für den reload).
2. wieder rein genommen (als "neuer" login)
dann sieht die onlineliste so aus:
Admin / 3 (falsch, da admin die ID 1 hat)
Testnutzer / 1 (falsche ID)
Code:
...
socket.on('new user', function(nickn,nicknid,callback)
{
callback(true);
socket.nickname = nickn;
users[socket.nickname] = socket;
socket.nid = nicknid;
usersid[socket.nid] = socket;
updateNicknames();
io.sockets.emit('login', {msg: 'hat sich gerade eingeloggt', nick: socket.nickname + '/' + socket.nid});
});
function updateNicknames()
{console.log('Konsolenausgabe: ' + Object.keys(users));
io.sockets.emit('usernames', Object.keys(users),Object.keys(usersid));
}
socket.on('disconnect', function(data)
{
if(!socket.nickname) return;
delete users[socket.nickname];
delete usersid[socket.nid];
updateNicknames();
io.sockets.emit('logout', {msg: 'hat sich gerade ausgeloggt', nick: socket.nickname + '/' + socket.nid});
});
......
bei der ausgabe im chatfenster für die unterhaltungen wird trotzdem immer die korrekte ID mit ausgegeben:
Code:
io.sockets.emit('login', {msg: 'hat sich gerade eingeloggt', nick: socket.nickname + '/' + socket.nid});
wo liegt da das problem?
oder gibt es eine andere variante die daten an den client zu senden (ohne den object.key befehl)?
Zuletzt bearbeitet: