2013-04-09 10 views
8

क्या मैं क्लाइंट पक्ष पर एक ही आईपी और पोर्ट पर एकाधिक संसाधनों से कनेक्ट कर सकता हूं?एक ही पृष्ठ पर एकाधिक socket.io कनेक्शन

मैं निम्नलिखित code-

var myIP = "192.168.1.1"; 
var myPort = "8080"; 

A = io.connect(myIP+':'+myPort,{resource: 'A/socket.io'}); 
B = io.connect(myIP+':'+myPort,{resource: 'B/socket.io'}); 

A.on('connect',console.log('A connected'); 
B.on('connect',console.log('B connected'); 

A.on('message',function(d){console.log('A: '+ d);} 
B.on('message',function(d){console.log('B: '+ d);} 

मैं myIP:myPort पर node-http-proxy चला रहा हूँ है। यह ए और बी पर अपने संबंधित सॉकेट-आईओ सर्वर पर प्रॉक्सी कनेक्शन है।

यदि मैं उपरोक्त कोड को एक ही स्क्रिप्ट पर चलाता हूं, तो ब्राउज़र दूसरे कथन को अनदेखा करता है (यह संसाधन बी के लिए अनुरोध को सक्रिय नहीं करता है)।

दोनों ए और बी के लिए on(message) कॉलबैक एक ही डेटा जो वास्तव में अगर मैं (एक और दूसरी ओर बी पर ए) दो अलग अलग HTML पृष्ठों में उपरोक्त कोड चलाने के लिए, वे ठीक से काम ए

के अंतर्गत आता है प्राप्त और मुझे अलग-अलग दोनों के लिए डेटा मिलता है।

उत्तर

9

इस प्रयास करें:

A = io.connect(myIP+':'+myPort, {resource: 'A/socket.io', 'force new connection': true}); 
B = io.connect(myIP+':'+myPort, {resource: 'B/socket.io', 'force new connection': true}); 

+0

हाँ यह मेरे लिए काम करता है! बहुत बहुत धन्यवाद – arunkjn

+0

'संसाधन' चीज क्या करती है? – RandallB

+0

@RandallB: इसे अब 'पथ' कहा जाता है। यह वह मार्ग है जिसे आप socket.io स्थिर जेएस फाइलों से सेवा करना चाहते हैं। Http://stackoverflow.com/questions/12824612/change-socket-io-static-file-serving-path जांचें – maxdec

0

मैं भी नेमस्पेस उल्लेख होगा ... तुम क्या करने की कोशिश कर रहे हैं क्या समय की एक बहुत संभाल फिर से कनेक्ट है (हाँ, मैं उद्धरण में से कुछ को हटा दिया) प्रति सॉकेट आधार पर घटनाएं, नामस्थान आपके लिए यह करते हैं। उनका बड़ा उछाल यह है कि आपको प्रत्येक के लिए कनेक्शन रखने की आवश्यकता नहीं है, जिसका अर्थ है कि वे ब्राउज़र की 6-कनेक्शन-प्रति-डोमेन सीमा में योगदान नहीं देते हैं।

कनेक्ट करने के लिए, बस इस कार्य करें:

socket = io('/namespace')

संबंधित मुद्दे