2011-08-10 13 views
5

का उपयोग कर कनेक्ट किए गए क्लाइंट की निगरानी करें मैं एक node.js सर्वर के साथ एक वेबसाइट बना रहा हूँ।node.js

मैं लॉग-इन उपयोगकर्ताओं (क्लाइंट) को कैसे ट्रैक करूं और अपनी आईडी को node.js सर्वर पर संग्रहीत करूं?

उत्तर

5

आज़माएं:।।?

var http=require('http'); 

var connected_users={}; 

var server=http.createServer(function(req,res){ 
    res.end('hi'); 
}); 

server.on('connection',function(socket){ 
    socket.__fd=socket.fd; 
    connected_users[socket.__fd]=socket.remoteAddress; 
    console.log(connected_users); 
    socket.on('close',function(){ 
     delete connected_users[socket.__fd]; 
     console.log(connected_users); 
    }); 
}); 
server.listen(8080); 

यह पता प्रिंट जुड़ा उपयोगकर्ताओं हर बार किसी को जोड़ता है की सरणी सांत्वना देने/डिस्कनेक्ट

+0

यह वही है जो मुझे चाहिए: डी धन्यवाद – chris

0

आप कनेक्ट या एक्सप्रेस एनपीएम मॉड्यूल का उपयोग कर सकते हैं (एक्सप्रेस कनेक्ट का विस्तार है)। कनेक्ट (और इस प्रकार व्यक्त) कुकी-आधारित सत्रों के लिए समर्थन है। एक्सप्रेस एक बहुत हल्का और लोकप्रिय ढांचा है।

उपयोगकर्ताओं को लगातार स्टोर करने के लिए, आप 'गंदे' मॉड्यूल का उपयोग कर सकते हैं। यदि आपको अधिक उन्नत स्टोर की आवश्यकता है - तो आप मोंगोडीबी, रीक या यहां तक ​​कि सादे पुराने SQL डेटाबेस (postgreSQL और mySQL) का उपयोग कर सकते हैं, हालांकि मैं आधुनिक दृष्टिकोण सीखने के लिए गंदे या दंगा से शुरू करने का सुझाव देता हूं (अर्थात्, मुख्य मूल्य स्टोर, इन- मेमोरी डेटाबेस, क्षैतिज स्केलेबिलिटी, दस्तावेज़-उन्मुख और अन्य नोएसक्यूएल डेटाबेस)।

+0

बात यह है कि मैं ar को स्टोर करना चाहता हूं एक सरणी में एक नए जुड़े क्लाइंट के लिए एंडोम आईडी और जब वे डिस्कनेक्ट करते हैं कि यह आईडी उस सरणी से हटा दी जाएगी। – chris

+0

HTTP कनेक्शन रहित प्रोटोकॉल है। तो जब कोई उपयोगकर्ता डिस्कनेक्ट होता है तो आप ट्रैक नहीं कर सकते। उपरोक्त कोड बेकार है क्योंकि अधिकांश उपयोगकर्ता कनेक्शन के तुरंत बाद डिस्कनेक्ट हो जाएंगे। – nponeccop

+0

क्या कोई तरीका है कि यह संभव होगा ?? – chris

0

यदि आप एक्सप्रेस का उपयोग करते हैं तो आपको सत्र मिडलवेयर ऐप.यूज (एक्सप्रेस.cookieParser()) और app.use (express.session ({secret: 'some secret'}) सेट करना चाहिए। डिफ़ॉल्ट रूप से यह स्मृति में संग्रहीत करता है लेकिन आप की दुकान सत्र के लिए डेटाबेस का उपयोग सक्षम करने के लिए अधिक जानकारी के लिए express guide में देखने यह है