2010-10-27 6 views
0

У меня есть java-сервер (который теперь выполняется локально), к которому будет подключаться мое флеш-приложение. Несмотря на то, что соединяет только хорошо, когда я бегу от CS4, когда я экспортируемого приложение и использовать XAMPP, чтобы получить доступ к флэш-приложение из браузера я получаю сообщение об ошибке:Проблема с сетевым подключением

{NetworkManager}: (Security Error) [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]

что я могу сделать, чтобы установить соединение либо я запускаю приложение из CS4 или получая доступ к опубликованному из браузера?

ответ

1

Если вы говорите об HTTP-соединении на порту 80, вам необходимо указать целевое приложение для предоставления файла политики междоменной политики.

http://www.adobe.com/devnet/flashplayer/articles/cross_domain_policy.html

When an attempt is made to load content into a SWF file at runtime, the request is subject to the Flash Player security model, which is in place to protect users and website owners. As part of this model, Flash Player by default prevents cross-domain loading of data, but allows cross-domain sending of data.

<!-- crossdomain.xml in root --> 
<cross-domain-policy> 
    <allow-access-from domain="*" /> 
</cross-domain-policy> 

Если вы говорите о сокет-соединение на другой порт, а затем настроить сервер политик для сокетов, чтобы обеспечить файл политики на определенный порт. Он должен прослушивать соединения на порту 843, а затем обслуживать файл политики, который указывает, какие домены разрешены для доступа к локальным портам.

<cross-domain-policy> 
    <allow-access-from domain="swf.example.com" to-ports="123,456-458" /> 
</cross-domain-policy> 

Есть свободные варианты размещения отдельного процесса, чтобы обслуживать этот файл или вы можете реализовать его самостоятельно в пределах текущего приложения Java.

http://www.adobeopenoptions.com/devnet/flashplayer/articles/socket_policy_files.html

+0

Я настроил XAMPP распознавать URL-адрес HTTP: //mygames.local, как локальный, так каждый раз, когда я вхожу на моем браузере я могу извлечь файлы в локальном каталоге, где находится SWF. Я сделал файл crossdomain.xml, как вы сказали, и добавьте файл Security.loadPolicy («путь/to/crossdomain.xml») в конструктор NetworkManager, который выполняет соединения (используя сокеты) с сервером. Но это не сработает. –

+0

@ user466825, вы должны добавить более подробную информацию о том, как swf связывается, точно содержимое вашего файла crossdomain.xml и то, как он обслуживается. –

+0

SWF-файл использует сокет для связи с сервером. Он записывает строку в сокеты и сбрасывает ее на java-сервер, который также отвечает на строку, и это все между ними, затем swf закрывает сокет. Содержимое файла crossdomain.xml похоже на вторую парадигму, которую вы дали, но в разрешении-доступ я поставил http: //mygames.local и to-ports = "12345", потому что это порт, который сервер слушает. –

Смежные вопросы