7


私はこの質問が数回尋ねられたことを知っています。
ただし、これらのソリューションを機能させることはできません。
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");
});

どうもありがとうございます!

4

1 に答える 1

8

これは、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';
    }
  }
于 2012-05-02T23:58:38.827 に答える