का उपयोग कर कनेक्टेड क्लाइंट की एक सूची बनाएं यहां 2 संबंधित प्रश्न हैं। उन्हें एक साथ पोस्ट करना और अधिक समझ में आता है।socket.io
प्रश्न 1
मैं जो सभी ग्राहकों के लिए बाहर एक घटना का उत्सर्जन करता है एक Node.js एप्लिकेशन है, और सभी मौजूदा ग्राहकों को एक ready
फेंकना के साथ जवाब देंगे। मैं उन सभी ग्राहकों की एक सूची कैसे बना सकता हूं जो प्रारंभिक उत्सर्जन का उत्तर देते हैं, और ग्राहकों को अलग करने के लिए किस प्रकार की पहचान का उपयोग किया जा सकता है?
Question2:
मैं के बाद क्या करना जुड़ा ग्राहकों की सूची एकत्रित कोशिश कर रहा हूँ क्या है, तो पंक्तियों की N
संख्या का एक MySQL डेटाबेस तालिका को एक्सेस और प्रत्येक ग्राहक X
पंक्तियों प्रत्येक आवंटित करने के लिए है। ये पंक्तियां अपने संबंधित ग्राहकों को वापस भेज दी जाएंगी। यह कैसे किया जा सकता है?
वर्तमान कोड Qn 1
नोड कोड
setInterval(function() {
util.log('Checking for new jobs...');
dbCheckQueue(function(results) { // checks if there are new rows to "distribute" to clients
if (results.length) {
util.log(results.length + ' new jobs found.');
io.sockets.emit('job_available');
}
});
}, 10*1000);
क्लाइंट-साइड जे एस कोड
socket.on('job_available', function() {
console.log('Job Available.. Responding with Ready!');
socket.emit('ready');
});
io.sockets.on('connection', function(socket) {
socket.on('ready', function() {
// UPDATE N rows with client_id in column checkout.
// Then SELECTS * from table where checkout = client_id
getListings(client_id, function(listings) {
socket.emit('job', listings); // send jobs
});
});
});
वर्तमान कोड Qn 2 के लिए ०१२३५१६४१०६ के लिएकोड एक क्लाइंट के लिए काम करता है, लेकिन मैं सभी कनेक्टेड क्लाइंट्स के माध्यम से कैसे लूप करता हूं और कॉलम का वही अद्यतन करता हूं और पंक्तियों का चयन करता हूं?
io.sockets.on('connection', function(socket) {
socket.on('ready', function() {
// UPDATE N rows with client_id in column checkout.
// Then SELECTS * from table where checkout = client_id
getListings(client_id, function(listings) {
socket.emit('job', listings); // send jobs
});
});
});
आप एक getListings() फ़ंक्शन के तर्क proevide सकता है क्योंकि मैं smiliar समाधान को लागू करने, लेकिन मैं एक के नाम पर स्क्रीन पर देख पहले लॉग इन उपयोगकर्ता। – johannesMatevosyan
'getListings' कॉल केवल नमूना कोड है जिसे मैंने मूल प्रश्न से खींचा है। मुझे नहीं पता कि इसमें क्या शामिल है या यह कैसे कार्यान्वित किया गया है। – rossipedia
मैं देख रहा हूँ, क्योंकि मैं सरणी में ग्राहकों के संचय कर रहा हूँ और जब मैं उन्हें 'foreach' या' for' छोरों मैं बस केवल पहली ब्राउज़र में ग्राहक के उपयोगकर्ता नाम में लॉग इन के hepl साथ पुनः प्राप्त करने का प्रयास करें। – johannesMatevosyan