2012-03-19 14 views
2

私は2つのSWF持っ乗算:(巻雲サービスを通じて)RTMFP複製 技術を使用してデータをロードすることができますフラッシュのSecurityDomain、P2Pの設定とSWFの

  1. アプリケーションのSWF
  2. のP2PクライアントのSWFを

主な考え方は、ドメインごとに1つのP2Pローダーを用意し、各ドメインの許可を何度も求めずにP2Pネットワークで動作できるようにすることです。

p2pクライアントは要求によってバイナリデータを読み込みますが、コンテンツは実際には信じられません。

だから、私は次のクラス(app.swf

public class ClientLoader { 

    // .. some code 

    public function load(cb:Function, err:Function):void 
    { 
     _cb = cb; 
     _err = err; 

     var loader:Loader = new Loader(); 
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoaded); 
     loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, _onIoError); 
     loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, _onSecurityError); 
     // note that context has neither application domain nor security domain 
     loader.load(new URLRequest(_url), new LoaderContext()); 
    } 

    private function _onLoaded(e:Event):void 
    { 
     trace("Loaded. Connecting to the p2p network..."); 

     _client = e.target.content; 
     _client.addEventListener(Event.CONNECT, _onClientReady); 
     _client.connect(); 
    } 

    private function _onClientReady(e:Event):void 
    { 
     _cb(_client); 
    } 

} 
} 

p2pclient自体( p2pcli.swf )を使用してp2pclient swfファイルを読み込む:

public class P2P extends Sprite 
{ 
    public function SqP2P() { 
     Security.allowDomain("*"); 
    } 

    public function connect():void 
    { 
     _connection = new NetConnection(); 
     _connection.addEventListener(NetStatusEvent.NET_STATUS, _netStatus); 
     _connection.connect(CIRRUS_ADDRESS, CIRRUS_KEY); 

     // after successful connect this method called 
     _loadGroup(); 
    } 

    private method _loadGroup():void 
    { 
     var spec:GroupSpecifier = new GroupSpecifier(_name); 
     spec.serverChannelEnabled = true; 
     spec.objectReplicationEnabled = true; 

     _group = new NetGroup(connection, spec.groupspecWithAuthorizations()); 
     _group.addEventListener(NetStatusEvent.NET_STATUS, _netStatus); 
    } 

    private function _netStatus(event:NetStatusEvent):void 
    { 
     trace("NetStatusEvent:", event.info.code); 
    } 

} 

をしかし、それはそのように見えますFlash Playerはセキュリティセッションを無視し、app.swfが属するドメインのポップアップ設定を保存しようとしていますが、p2pcli.swfドメインのポップアップ設定は保存しようとしていません。なぜ?!

p2p settings box

私は絶対に同じコードを持っていますが、ローカル共有オブジェクトにデータを格納し、すべてのdomain1-2-N.comはそれへのアクセス権を持っているSWFにp2pcli.swf置き換えます。

アイデア?

私が知っている

、私の英語はがらくた:(

答えて

1

私は本当に全くわからないが、私はそれが役に立つ場合にはそこに私の答えをスローされますです。

などの一般的な目的に基づいて、いくつかのケースでは、私はPeer Assisted Networkingが一部の人々のセキュリティ上のリスクになる可能性があると確信しています(とにかく、帯域幅を使用しています)。その通知をオンまたはオフにする方法は、Flash設定ダイアログ(Windows 7のコントロールパネル...)でユーザー側であるため、Flashプラットフォームに本来的にハードワイヤード接続されていることを示します。

もちろん、私はAdobe AIRのスペシャリストであるため、私は完全に間違っている可能性があります...あなたのプロジェクトのために、私は真剣に私が願っています!

そして、あなたの英語はほぼ完璧でした。私は明確にするために1つのパラグラフを微調整したが、そうでなければスポットを当てた。 :D

+0

ありがとうございました!ローカル共有オブジェクトは、ユーザーにとっても危険な可能性がありますが、意味があります。そして、他のドメインからの1つのLSOに(この厄介な設定ボックスを飛び出させることなく)要求を "proxing"する特定のドメイン上でswfを持つことは可能です。 – deadrunk

+0

私の答えが助けられたら、賞金を授与することを忘れないでください!それ以外の場合は、何も起こらずに50を失うだけです。 – CodeMouse92

+0

too late :(もう一度ありがとう) – deadrunk

関連する問題