2012-04-19 68 views
7


Sé que esta pregunta se ha hecho un par de veces.
Sin embargo, no puedo hacer que esas soluciones funcionen.
Estoy ejecutando una instalación estándar de node.js y socket.io. (De yum en Amazon EC2)
El problema es que Chrome está retrocediendo al sondeo xhr, y esas solicitudes requieren una configuración de CORS que funcione. Sin embargo, parece que no puedo hacer que funcione. Mi servidor web se está ejecutando en el puerto 80 y node.js (socket.io) se está ejecutando en el puerto 81. Intenté hacer que socket.io use una política de origen como puede ver. También intenté usar "*: *" como origen sin suerte.
Aquí está mi código:Socket.io no establece CORS header (s)

var http = require('http'); 
var io = require('socket.io').listen(81, {origins: '*'}); 

io.configure(function(){ 
    io.set('origin', '*'); 
}); 
io.set("origins","*"); 

var server = http.createServer(function(req, res) { 
    io.sockets.emit("message", "test"); 
res.writeHead(200); 
    res.end('Hello Http'); 
    console.log("Message recieved!"); 
}); 
server.listen(82); 

io.sockets.on('connection', function(client) { 
    console.log("New Connection"); 
}); 

Muchas gracias!

Respuesta

7

Ésta es la sintaxis que tenía que utilizar para obtener CORS trabajar con socket.io:

io.set('origins', '*domain.com*:*'); 

Si se trata de él, utilice console.log para asegurarse de que está entrando en este bloque de código en el interior Manager.prototype.handleHandshake./lib/manager.js:

if (origin) { 
    // https://developer.mozilla.org/En/HTTP_Access_Control 
    headers['Access-Control-Allow-Origin'] = '*'; 

    if (req.headers.cookie) { 
     headers['Access-Control-Allow-Credentials'] = 'true'; 
    } 
    } 
+0

No funciona ... En este momento estoy buscando usar sockjs. Pero gracias de todos modos! : D – Fredefl

+0

Pero como funciona para usted, y creo que mi instalación y configuración fueron incorrectas, acepto su respuesta. – Fredefl

+0

Gracias. Aún así no me importaría depurarme si estás preparado para eso. Tendría que ver los encabezados HTTP. – buley