Can I connect to multiple resources on the same IP and port on the client side?
I have the following 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);}
I am running node-http-proxy on myIP:myPort
.
It is proxying connections on A and B to their respective socket-io servers.
If I run the above code on a single script, the browser ignores the second statement (It does not fires a request to resource B).
The on(message)
callbacks for both A and B recieve the same data which actually belongs to A.
If I run the above code in two different html pages (A on one and B on other), they work fine and I get the data for both separately.
Try this:
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});
(Yes, I removed some of the quotes)
I would also mention Namespaces... a lot of times what you're trying to do is handle reconnect events on a per socket basis, namespaces do this for you. Their major upside is you don't need to have a connection per each one, which means they don't contribute to the 6-connections-per-domain limit of browsers.
To connect, simply do this:
socket = io('/namespace')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With