2010-12-03 6 views
0

PHPを使用してソケットサーバーを実行しています。 PHPを使用してソケットサーバーに接続できるので、ソケットサーバーはうまく動作します。私はローカルでアプリケーションを実行するとFlash/Flex&PHPソケットアプリケーションサンドボックスエラー

  this.socket.addEventListener(Event.CONNECT, onSocketConnect); 
      this.socket.addEventListener(Event.CLOSE, onSocketClose); 
      this.socket.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 
      this.socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecError); 

      try { 
       this.socket.connect("myip", 9999); 
      } catch (ioError:IOError) { 
       this.debugLbl.text += "ioError1 "+ioError.message; 
      } catch (secError:SecurityError) { 
       this.debugLbl.text += "secError1 "+secError.message; 
      } 

が、それは動作します:

は今、私はそれに接続しようとしているフラッシュアプ​​リケーションを持っています!しかし、サーバーにアップロードすると、サンドボックスのセキュリティエラー(#2048)が発生します。 Flashアプリケーションは、実際にはソケットサーバーと同じサーバー上にホストされており、クロスドメインポリシーファイルが適所にあります。

+0

UPDATE:私はフラッシュのアプリを実行すると、私のサーバーは、実際に受信して、ソケットの要求を受け付けます。しかし、クライアント/フラッシュアプ​​リはサンドボックスエラーを表示します –

答えて

0

おそらくあなたはPHPプロキシを使用する必要がありますか?私はそれをしなければならなかった、それはhereです。あなたは、アプリケーションが同じサーバー上にあり、crossdomain.xmlがその場所にあると言いましたが、私はおそらくそこからマークを外しています(btw、Flash 10は私が知る限り、以前のバージョンとは異なるcrossdomain.xmlが必要です)。

0

実際にクロスドメインポリシーファイルをロードしていますか?私が知る限り、Flash Playerは自動的に次のファイルをロードしようとします:http://www.example.com/crossdomain.xml。あなたのファイルが別の場所にある場合、あなたはそれをロードする必要があります。

Security.loadPolicyFile("http://www.example.com/subfolder/crossdomain.xml"); 

をまた、アプリが同じサーバー上にある場合でも、Flash Playerは、「http://www.example.com」は異なるようにと考えています「http://example.com」、あなたは、クロスドメインポリシーファイルにこの可能性をカバーすることを確認する必要がありますので:

<allow-access-from domain="*.example.com"/>