Может ли клиент socket.io подключаться к двум различным серверам/портам?

Может ли клиент socket.io подключаться к двум различным портам на одном сервере?

Может ли клиент socket.io подключиться к двум различным серверам?

Ответы

Ответ 1

Может ли клиент socket.io подключаться к двум различным портам на одном и том же сервер?

Я предполагаю, что обе машины используют один и тот же домен. Я считаю, что он может использовать длительный опрос (websockets, flashsockets и т.д. Также работает), даже передавая cookie. Но мне все еще нужно проверить это в Internet Explorer, потому что этот браузер никогда не делает то, что я хочу...

Может ли клиент socket.io подключиться к двум различным серверам?

Большой вопрос: эти обе машины находятся в разных доменах. Если в том же домене он будет работать просто отлично, даже пропуская cookie (ы). Если они находятся на разных доменах, то в каком-то браузере мы возвращаемся к json-p транспорту (наихудший транспортный воображаемый), но он будет работать. К сожалению, cookie не передается из-за той же политики происхождения. Прямо сейчас я собираюсь обойти это ограничение для печенья (сложная проблема)...

Ответ 2

Sure:

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