Witam,
Uczę się tworzyć strony w nodejs i zatrzymałem się przy takim problemie. Używam express i socket.io do komunikacji serwer <-> przeglądarka. Użytkownik loguje się i jego dane mogę pobrać z req. Chcę je mu odesłać, żeby mógł np. zobaczyć swój nick w taki sposób:
app.get('/test', function(req, res,next) {
res.sendFile(__dirname + '/public/test.html');
io.on('connection', function(client) {
client.on('dawajnick', function(msg){
client.emit('nick', req.user.nick);
client.emit('steamID', req.user.steamid);
});
});
});
i on odbiera:
<script>
var socket = io.connect();
socket.on('nick', function(nick){
document.getElementById('nick').innerHTML = "Twój nick to: " + nick;
});
function DawajNickButtonClicked(){
socket.emit('dawajnick');
}
</script>
Problem pojawia się, kiedy zaloguje się druga osoba w tym samym czasie. Wtedy nodejs z req bierze ostatnią osobę, która weszła na tą stronę /test, przez co wcześniejsza osoba, która nie odświeżyła strony i nacisnęła przycisk Dawaj Nick, otrzymuje nick osoby, która jako weszła jako ostatnia. W jaki sposób na serwerze wysłać poprawny nick tak, żeby za każdym razem zgadzał się z osobą, która go chce otrzymać?