socket.io 客户端可以连接到两个不同的服务器/端口吗?
Posted
技术标签:
【中文标题】socket.io 客户端可以连接到两个不同的服务器/端口吗?【英文标题】:Can socket.io client connect to two different servers/ports? 【发布时间】:2011-10-14 04:31:26 【问题描述】:socket.io 客户端可以连接到同一服务器上的两个不同端口吗?
socket.io 客户端可以连接到两个不同的服务器吗?
【问题讨论】:
【参考方案1】:socket.io 客户端能否同时连接到两个不同的端口 服务器?
我假设两台机器共享同一个域。我相信它可以使用长轮询(websockets、flashsockets 等也可以),甚至可以传递 cookie。但我仍然需要在 Internet Explorer 上对此进行测试,因为该浏览器永远不会执行我想要的操作...
socket.io 客户端可以连接到两个不同的服务器吗?
最大的问题是这两台机器是否位于不同的域中。如果在同一个域上,即使传递 cookie,它也能正常工作。如果它们在不同的域上,那么在某些浏览器上我们会回退到 json-p 传输(可以想象的最差传输),但它会起作用。不幸的是,由于同源策略,cookie 没有被传递。现在我正在尝试绕过这个 cookie 限制(难题)...
【讨论】:
【参考方案2】:当然:
var io1 = require('socket.io').listen(8001);
io1.sockets.on('connection', function (socket)
socket.emit('news', hello: 'world' );
);
var io2 = require('socket.io').listen(8002);
io2.sockets.on('connection', function (socket)
socket.emit('flash', hello: 'world' );
);
也许这是一个有趣的阅读:(来自github)
// connect at the same host / port as your website
var socket = io.connect();
// different port or host
var socket = io.connect('http://url.com');
// secure
var socket = io.connect('https://localhost');
【讨论】:
以上是关于socket.io 客户端可以连接到两个不同的服务器/端口吗?的主要内容,如果未能解决你的问题,请参考以下文章
Socket.io - nodejs 服务器端。重新连接后传输关闭
Socket.io 客户端在突然断开连接后无法重新连接到服务器