我可以在客户端连接到同一 IP 和端口上的多个资源吗?
我有以下代码-
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);}
我正在运行 node-http-proxy在 myIP:myPort
上。
它正在将 A 和 B 上的连接代理到它们各自的 socket-io 服务器。
如果我在单个脚本上运行上述代码,浏览器会忽略第二条语句(它不会触发对资源 B 的请求)。
A 和 B 的 on(message)
回调接收到实际上属于 A 的相同数据。
如果我在两个不同的 html 页面(A 在一个页面上,B 在另一个页面上)运行上面的代码,它们工作正常,我分别获取两个页面的数据。
最佳答案
试试这个:
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});
(是的,我删除了一些引号)
关于javascript - 同一页面上的多个 socket.io 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15901688/