node.js - How to emit event in socket.io based on client? -


मैं node.js, express और socket.io का उपयोग करके रीयलटाइम डेटा विज़ुअलाइज़ेशन एप्लीकेशन पर काम कर रहा हूं।

आवश्यकता:

क्लाइंट अनुरोध के आधार पर ईवेंट का उत्सर्जन करना है।

उदाहरण के लिए : यदि उपयोगकर्ता url को http: // localhost: 8080 / pages socket.io क्लाइंट को विषय कोड और http: // localhost: 8080 / स्थानों के लिए अन्य उपयोगकर्ता अनुरोध को छोड़ देना चाहिए सॉकेट को उस विशिष्ट उपयोगकर्ता को स्थान का उपयोग करना चाहिए।

कोड
  var सर्वर = app.listen ("8080"); Var सॉकेट = आवश्यक ('socket.io'); Var io = socket.listen (सर्वर); Var config = {}; Io.on ('कनेक्शन', फ़ंक्शन (सॉकेट) {config.socket = io.sockets.socket (socket.id); socket.on ('डिस्कनेक्ट', फ़ंक्शन () {console.log ('socket.io डिस्कनेक्ट है ');});}); App.get ('/ *', फ़ंक्शन (रिक, रेस) {var url = req.url; var eventName = url.substring ('/'। लंबाई); // पृष्ठ और स्थानों config.socket.volatile.emit ( EventName, परिणाम);});   

ग्राहक कोड:

  // क्लाइंट कोड में कोई भी समस्या नहीं है.यह ठीक से काम कर रहा है नमूना कोड निम्नानुसार socket.on ('pages', फ़ंक्शन (परिणाम) {console.log (परिणाम);});   

समस्या:

यह दोनों ग्राहकों को पृष्ठों और स्थानों का उत्सर्जन करता है

मैं आपके दृष्टिकोण को समझ नहीं सका इस पर, लेकिन क्योंकि आपने कहा है कि आप अलग-अलग पृष्ठों का अनुवाद कर रहे हैं, इसका मतलब है कि आप अलग-अलग कोड की सेवा कर सकते हैं, तो इसके बारे में ऐसा करने के बारे में:

सर्वर साइड: <पूर्व> var सर्वर = app.listen ("8080"); Var सॉकेट = आवश्यक ('socket.io'); Var io = socket.listen (सर्वर); Var config = {}; App.get ('/ pages', फ़ंक्शन (req, res) {res.render ('pages.html');}); App.get ('/ स्थानों', फ़ंक्शन (रीक, रिज़) {res.render ('locations.html');}); Io.on ('कनेक्शन', फ़ंक्शन (सॉकेट) {socket.on ('pagesEvent', फ़ंक्शन (डेटा) {socket.volatile.emit ('पृष्ठ', {अपने: 'डेटा'});}); सॉकेट पर ('स्थानोंऐवेंट', फ़ंक्शन (डेटा) {socket.volatile.emit ('स्थानों', {अपने: 'डेटा'});});});

ग्राहक पक्ष पर:

pages.html:

  Socket.on ('कनेक्ट', फ़ंक्शन () {socket.emit ('pagesEvent', {});}); Socket.on ('पृष्ठ', फ़ंक्शन (डेटा) {// यहां सामान करते हैं});   

locations.html: <पूर्व> socket.on ('कनेक्ट', फ़ंक्शन () {socket.emit ('locationsEvent ', {});}); Socket.on ('स्थानों', फ़ंक्शन (डेटा) {// यहां सामान करते हैं});

Comments

Popular posts from this blog

c - Mpirun hangs when mpi send and recieve is put in a loop -

python - Apply coupon to a customer's subscription based on non-stripe related actions on the site -

java - Unable to get JDBC connection in Spring application to MySQL -