http - Socket.io 不设置 CORS header

标签 http node.js websocket socket.io cors


我知道这个问题已经被问过几次了。
但是,我无法使用任何这些解决方案。
我正在运行 node.js 和 socket.io 的标准安装。 (来自 Amazon EC2 上的 yum)
问题是 Chrome 正在回退到 xhr 轮询,而这些请求需要有效的 CORS 配置。但是,我似乎无法让它工作。我的网络服务器在端口 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:

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

关于http - Socket.io 不设置 CORS header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235905/

相关文章:

regex - Apache http + mod-rewrite 到 Tomcat 以从 url 丢失应用程序子文件夹

http - 使用本地 http 调用的开销

c# - Windows Phone 8 - 下载 html 代码不等待

Node.js HTTP 服务器路由

sockets - 了解WebSockets

java - WebSockets、GlassFish、Grizzly — 无法连接

Python urllib2.urlopen() 很慢,需要一个更好的方法来读取多个 url

node.js - 如何在 Protractor 中为不同规范文件制作单独的报告?

node.js - 我的 Mongoose 模式不正确吗?

amazon-web-services - 在可扩展的网站上显示实时数据?