/ / SocketId é alterado após salvá-lo no banco de dados - node.js, express, mangusto, socket.io

SocketId é alterado depois de salvá-lo no banco de dados - node.js, express, mongoose, socket.io

io.on("connection",function(socket){
socket.emit("online");
users.findOne({"username":session.username},function(err,user){
console.log("UPDATING THE CURRENT SOCKEDID ie ! "+" socketidfromDB :
"+user.callsession.socketid+"    to cureent socketid :  "+socket.id);
user.callsession.socketid=socket.id;
user.save();
});

Quando estou tentando executar esse código emconexão do socketio, Isso automagicamente executa duas vezes e acaba salvando socketId errado no DataBase. O socketId armazenado não é o socketId atual, é algo mais. insira a descrição da imagem aqui

O que está acontecendo ?

Respostas:

0 para resposta № 1

É melhor passar o token da sessão nos dados pelo soquete. Você pode rastrear facilmente toda a comunicação da respectiva sessão. É difícil retransmitir o ID do soquete, o que aumenta a complexidade desnecessária.