2012-04-19 26 views
7


我知道這個問題已被問了幾次。
但是,我無法得到任何這些解決方案的工作。
我正在運行node.js和socket.io的標準安裝。 (來自Amazon EC2上的yum)
問題是Chrome回退到xhr輪詢,並且這些請求需要一個可用的CORS配置。但是,我似乎無法讓它工作。我的Web服務器運行在端口80上,node.js(socket.io)在端口81上運行。我試圖讓socket.io使用源策略,如您所見。我也嘗試使用「*:*」作爲原點,但沒有運氣。
這裏是我的代碼:Socket.io沒有設置CORS頭(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"); 
}); 

非常感謝您!

回答

7

這是我不得不用得到CORS與socket.io工作的語法:

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

如果說到它,使用console.log,以確保你在裏面Manager.prototype.handleHandshake進入這個代碼塊./lib/manager.js

​​
+0

它沒有炒鍋...我目前正在使用sockjs來代替。不過謝謝你! :D – Fredefl 2012-05-09 20:56:45

+0

但是既然它確實對你有用,而且我認爲我的安裝和配置是錯誤的,我接受你的答案。 – Fredefl 2012-05-16 16:21:32

+0

謝謝。如果你願意的話,我仍然不介意和你一起調試。需要看到HTTP標頭。 – buley 2012-05-16 22:42:53