我知道这个问题已经问过几次了。 但是,我无法获得这些解决方案。 我正在运行标准安装的node.js和socket.io。(来自Amazon EC2上的yum) 问题是Chrome退回到xhr轮询,并且这些请求需要有效的CORS配置。但是,我似乎无法正常工作。我的Web服务器在端口80上运行,而node.js(socket.io)在端口81上运行。如您所见,我试图使socket.io使用源策略。我也尝试过使用“ :”作为没有运气的来源。 这是我的代码:
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"); });
非常感谢你!
这是我必须使用语法来使CORS与socket.io一起工作:
io.set( 'origins', '*domain.com*:*' );
如果涉及到这一点,请使用console.log来确保在Manager.prototype.handleHandshake内部输入以下代码块./lib/manager.js:
console.log
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'; } }