1

Flash ActionScript から TCP ソケットを使用しようとしています。Adobe が提供する標準的な例を使用しています。コードは次のとおりです。

// Load policy file from remote server.
Security.loadPolicyFile("http://" + serverURL + "/crossdomain.xml");
// Attempt to connect to remote socket server.
try {
    msg("Trying to connect to " + serverURL + ":" + portNumber + "\n");
    socket.connect(serverURL, portNumber);
} catch (error:Error) {
    /*
        Unable to connect to remote server, display error 
        message and close connection.
    */
    msg(error.message + "\n");
    socket.close();
}

ポート80にある私のcrossdomain.xmlファイル:

<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd">
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

アプリケーションをロードすると、インスペクターで、ポリシー ファイルに正常にアクセスしていることがわかります。ただしEvent.CONNECT、呼び出されることはありません。同じドメインを含むさまざまなドメインでさまざまなポートを開こうとしましたが、うまくいきませんでした。別のポリシー ファイルを試しました。

私は何が欠けていますか?

4

2 に答える 2

2

allowscriptaccess が false の場合、それをバイパスすることはできないため、見逃しているのは Adob​​e ポリシー サーバーです。

http://vvowproject.googlecode.com/svn-history/r41/trunk/server/flashpolicyd.py

サーバーでポート843を開き、次のコマンドを使用します

sudo ./flashpolicyd.py --file=crossdomain.xml --port=843

ここに crossdomain.xml があります

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*"/>
<allow-http-request-headers-from domain="*" headers="SOAPAction"/>
</cross-domain-policy>

これは間違いなく機能します。私はあなたの例で自分で試しました。

于 2013-10-18T13:54:02.613 に答える