socket.io客户端可以连接到两个不同的服务器/端口吗?

时间:2011-07-27 11:32:15

标签: node.js websocket socket.io

socket.io客户端可以连接到同一台服务器上的两个不同端口吗?

socket.io客户端可以连接到两个不同的服务器吗?

2 个答案:

答案 0 :(得分:21)

<强>不确定

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');

答案 1 :(得分:9)

  

socket.io客户端可以连接到同一个端口上的两个不同端口   服务器

我假设两台机器共享同一个域。我相信它可以使用长轮询(websockets,flashsockets等也可以工作),甚至可以传递cookie。但是我仍然需要在Internet Explorer上测试它,因为那个浏览器永远不会做我想要的......

  

socket.io客户端可以连接到两个不同的服务器吗?

最大的问题是这两台机器是否在不同的域上。如果在同一个域上,即使传递cookie也可以正常工作。如果它们位于不同的域上,那么在某些浏览器上我们会回退到json-p传输(可以想象的最差的传输),但它会起作用。不幸的是,由于相同的原始政策,cookie不会被传递。现在我想要绕过这个cookie限制(难题)......