2011-11-22 9 views
-1

nodejsで書かれたソケットサーバー用のFlashAS3でソケットクライアントを作成しようとしています。私はそれと通信するモバイルアプリクライアントも持っています。AS3 XMLSocketはWIN EXEでは動作しますが、SWFでは動作しません

AS3では、Windows EXEファイルを公開して実行すると完全に動作するテストコードを書きましたが、SWFに公開してブラウザで開くとサーバーに接続しません。 「輸入」のすべてが役に立たない。コード:

import flash.system.Security; 
import flash.net.XMLSocket; 
import flash.events.Event; 
import flash.events.IOErrorEvent; 
import flash.events.SecurityErrorEvent; 
import flash.events.DataEvent; 

var xmlSocket:XMLSocket = new XMLSocket(); 
xmlSocket.connect("myserverhost", 88); 

xmlSocket.addEventListener(DataEvent.DATA, onIncomingData); 
send_btn.addEventListener(MouseEvent.CLICK, clickHandler); 
disconnect_btn.addEventListener(MouseEvent.CLICK, disconnectHandler); 

function clickHandler(event:MouseEvent):void 
{ 
    xmlSocket.send(input_txt.text); 
    input_txt.text = ""; 
} 

function disconnectHandler(event:MouseEvent):void 
{ 
    xmlSocket.close(); 
    send_btn.enabled = false; 
} 

function onIncomingData(event:DataEvent):void 
{ 
    var items:Object = JSON.decode(event.data); 
    for (var index in items) { 
     trace(index+" => "+items[index]); 
    } 

    if(items['hello']){ 
     output_txt.text += items['hello'] + "\n"; 
    } 
    else if(items['description']){ 
     output_txt.text += items['description'] + "\n"; 
    } else { 
     output_txt.text += event.data + "\n"; 
    } 


    output_txt.verticalScrollPosition = output_txt.maxVerticalScrollPosition; 
} 

は、私がグーグルとcrossdomain.xmlファイルを作成するために助言を見つけましたが、それは動作しませんされており、これは、それは次のとおりです。

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="*" to-ports="*" secure="false"/> 
</cross-domain-policy> 
+0

問題は、私は、ファイルのようにlocalhostのドメインにブラウザ でSWFの\ HTMLを開いたということでした/ユーザ/ 私はそれをサーバーに転送さ - それは失敗停止が、それでも、それはメッセージを取得することはできませんサーバーから – user1060667

答えて

1

var xmlSocket:XMLSocket = new XMLSocket();Security.allowDonain('*');を呼び出してみてください。 Security.loadPolicyFile

特別な構文について

+0

ありがとう!問題は、SWFがサーバー上ではなく私のPC上にあることでした。しかし、新しい問題が発生しました。サーバに接続した後、すぐに切断されます... – user1060667

0

外観は、ポリシーファイルをXMLSocketサーバーから直接取得することができます。 例: System.security.loadPolicyFile( "xmlsocket://adobe.com:414"); // localhost /をC:

+0

ありがとう!問題は、SWFがサーバー上ではなく私のPC上にあることでした。しかし、新しい問題が現れました。サーバーに接続した後、すぐに切断されます... – user1060667

関連する問題