2011-07-27 28 views

Respuesta

8

puede Socket.IO cliente conectarse a dos puertos diferentes en el mismo servidor ?

Supongo que ambas máquinas comparten el mismo dominio. Creo que puede usar el sondeo largo (websockets, flashsockets, etc. también funcionan), incluso pasando por cookie. Pero todavía necesito probar esto en Internet Explorer porque ese navegador nunca hace lo que quiero ...

¿Puede el cliente socket.io conectarse a dos servidores diferentes?

La gran pregunta es si esas dos máquinas están en dominios diferentes. Si está en el mismo dominio, funcionará perfectamente incluso si pasa cookies. Si están en dominios diferentes, entonces en algún navegador caemos de nuevo al transporte json-p (el peor transporte imaginable), pero funcionará. Lamentablemente, la cookie no se transfiere debido a la misma política de origen. En este momento estoy tratando de evitar esta restricción de cookies (problema difícil) ...

20

Claro:

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

Quizás esta es una lectura interesante: (de 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'); 
Cuestiones relacionadas