1

フラッシュで私は入れました:

Security.allowDomain("*");
socket = new FlashSocket("http://engine.WEBSITE1.com:8002");

フラッシュ ファイルをオンラインで実行すると、ポート 8002 を介して node.js アプリに /crossdomain.xml を自動的に要求するため、socket.ioが接続する前に次のコードを追加しました。

app.get('/*',function(req,res,next){
 if(req.method==='GET'&&req.headers.referer.indexOf('http://WEBSITE0.com/')===0&&req.url==='/crossdomain.xml'){
    console.log('/crossdomain.xml');
    flash=true;
    var body='<cross-domain-policy><allow-access-from domain="WEBSITE0.com" to-ports="8002"/></cross-domain-policy>';
    console.log(body);
    res.writeHead({'Content-Type':'text/x-cross-domain-policy'});
    res.write(body);
    res.end();
    }
  else if(req.method==='GET'){console.log('???');console.dir(req);}
  });

ここに画像の説明を入力

クロス ドメイン ポリシーを取得しても、セキュリティ サンド ボックス違反で拒否されます。実際、違反は私がまったく期待していたものではありません.Flashはクロスドメインポリシーを要求し、そこからデータをロードすることを拒否しています.

<cross-domain-policy><allow-access-from domain="WEBSITENAME" to-ports="*"/></cross-domain-policy>

ここに画像の説明を入力

私のswfファイルはFlashSocketEvent.CONNECTイベントの受信に失敗します。私のnode.jsアプリでは、これを入れました:

io.sockets.on('connection',function(socket){
  if(flash===true){console.log('flash');}

コンソールに「フラッシュ」と表示されます。ただアドビは私にノーと言っています...何か考えはありますか?

4

0 に答える 0