保存到数据库后更改SocketId

时间:2017-06-25 06:08:09

标签: 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();
});

当我尝试在连接socketio时运行这段代码时,这会自动符文两次并最终将错误的socketId保存到DataBase。存储的socketId不是当前的socketId,还有其他的东西。 enter image description here

发生了什么事?

1 个答案:

答案 0 :(得分:0)

最好通过套接字在数据中传递会话令牌。您可以轻松跟踪各个会话的所有通信。在套接字ID上进行中继很困难,这增加了不必要的复杂性。