/ / SocketId को डेटाबेस में सहेजने के बाद बदल दिया जाता है - node.js, express, mongoose, socket.io

सॉकेटआईड को डेटाबेस में सहेजने के बाद बदला जाता है - 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();
});

जब मैं कोड के इस टुकड़े को चलाने की कोशिश कर रहा हूंसॉकेटियो का कनेक्शन, यह स्वचालित रूप से दो बार चलता है और डेटा सॉसेज में गलत सॉकेट को बचाने के लिए समाप्त होता है। SocketId को स्टोर किया गया वर्तमान सॉकेट नहीं है, इसका कुछ और है। यहां छवि विवरण दर्ज करें

क्या हो रहा है ?

उत्तर:

जवाब के लिए 0 № 1

सॉकेट के माध्यम से डेटा में सत्र टोकन पास करना बेहतर है। आप संबंधित सत्र के लिए सभी संचार आसानी से ट्रेस कर सकते हैं। सॉकेट आईडी पर रिले करना मुश्किल है जो अनावश्यक जटिलता जोड़ता है।