2012-04-19 9 views
7


So che questa domanda è stata fatta un paio di volte.
Tuttavia, non riesco a far funzionare queste soluzioni.
Sto eseguendo un'installazione standard di node.js e socket.io. (Da yum su Amazon EC2)
Il problema è che Chrome sta tornando al polling xhr e quelle richieste richiedono una configurazione CORS funzionante. Tuttavia, non riesco a farlo funzionare. Il mio server web è in esecuzione sulla porta 80 e node.js (socket.io) è in esecuzione sulla porta 81. Ho cercato di ottenere socket.io per utilizzare una politica di origine come puoi vedere. Ho anche provato a usare "*: *" come origine senza fortuna.
Ecco il mio codice:Socket.io non imposta intestazione CORS

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

Grazie mille!

risposta

7

Questa è la sintassi ho dovuto usare per ottenere CORS lavorare con socket.io:

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

Se si tratta di esso, utilizzare console.log per assicurarsi che si sta entrando in questo blocco di codice in Manager.prototype.handleHandshake all'interno ./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

Non ha funzionato ... Attualmente sto cercando di utilizzare sockjs invece. Ma grazie comunque! : D – Fredefl

+0

Ma dal momento che funziona per te, e penso che la mia installazione e configurazione fosse sbagliata, accetto la tua risposta. – Fredefl

+0

Grazie. Ancora non mi dispiacerebbe fare il debugging con te se lo fai. Avrebbe bisogno di vedere le intestazioni HTTP. – buley

Problemi correlati