Невозможность подключиться к серверу Java с AS3 - PullRequest
1 голос
/ 14 марта 2011

У меня проблемы со скриптом XMLSocket в AS3. У меня есть сервер Java, и я пытаюсь отправить данные XML, но сервер ничего не получает. Самое удивительное, что мой скрипт работал очень хорошо месяц назад, и теперь мой слушатель IOError возвращает меня:

"Ошибка № 2031: ошибка сокета. URL: 127.0.0.1 в тесте () at Client_fla :: MainTimeline / frame1 () "

и мой прослушиватель SecurityError:

"Ошибка № 2048: нарушение изолированной программной среды безопасности: файл: /// C | /Documents%20and%20Settings/Zeph/Bureau/Client.swf не может загрузить данные из 127.0.0.1:18000. в тесте () at Client_fla :: MainTimeline / frame1 () "

Я пытался сменить IP, я пытался на другом компьютере, я пытался вытащить прежнюю версию моего скрипта, которая не изменилась, без результата.

Я просто не могу понять, почему это перестало работать так. Вот мой сценарий:

package
{

    import flash.net.XMLSocket;
    import flash.events.*;
    import flash.display.MovieClip;

    public class test extends MovieClip 
    {

        public function test()
        {
            trace("pouet");
            var xmlsock:XMLSocket = new XMLSocket(); 
            xmlsock.connect("127.0.0.1", 18000);
            var xmlFormattedData = new XML('<message pseudo="Nix" value="Coucou !"/>'); 
            xmlsock.send(xmlFormattedData);
            xmlsock.addEventListener(DataEvent.DATA, onData);
            xmlsock.addEventListener(IOErrorEvent.IO_ERROR, ioerror);
            xmlsock.addEventListener(SecurityErrorEvent.SECURITY_ERROR, secuerror);
            xmlsock.send(xmlFormattedData);

        }

        private function onData(event:DataEvent):void 
        { 
            trace("[" + event.type + "] " + event.data); 
        }


        private function ioerror(event:IOErrorEvent):void 
        { 
        trace(event);
        }

        private function secuerror(event:SecurityErrorEvent):void 
        { 
        trace(event);
        }

    }

}

Я злюсь на это, у кого-нибудь есть идея?

Спасибо за чтение!

Ответы [ 2 ]

0 голосов
/ 15 марта 2011

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

Это не разрешено по умолчанию.Вы можете сделать одно из двух:

  • Обновите глобальные параметры безопасности в вашем флеш-плеере (щелкните правой кнопкой мыши, дополнительные параметры, глобальные параметры безопасности, затем установите для файла флэш-памяти или всей папки значениеразрешено выполнять сетевые запросы)

  • Запустите приложение флэш-памяти с веб-сервера (и убедитесь, что на сервере Java имеется файл crossdomain.xml).

0 голосов
/ 14 марта 2011

Как показывает ваша ошибка, вы столкнулись с нарушением безопасности в песочнице.Это означает, что Flash не будет разрешать ресурсы из доменов приложений, кроме своих собственных.В основном есть два исправления, одно намного проще, чем другое:

  1. Узнайте, как создать и загрузить crossdomain xml .Это просто «политика» на сервере, которую читает ваше запущенное флэш-приложение.Это может быть сложно настроить правильно, но это общепринятый маршрут.

  2. В ваших настройках вывода в разделе «безопасность локального воспроизведения» вы можете проверить «доступ к сетевым файлам» вместо «доступ только к локальным файлам» и быстро решить вашу проблему.

Надеюсь, это поможет!

...