Ошибка песочницы приложения Flash / Flex и PHP Socket - PullRequest
0 голосов
/ 03 декабря 2010

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

Теперь у меня есть флэш-приложение, которое пытается подключиться к нему:

            this.socket.addEventListener(Event.CONNECT, onSocketConnect);
            this.socket.addEventListener(Event.CLOSE, onSocketClose);
            this.socket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
            this.socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecError);

            try {
                this.socket.connect("myip", 9999);
            } catch (ioError:IOError) {
                this.debugLbl.text += "ioError1 "+ioError.message;
            } catch (secError:SecurityError) {
                this.debugLbl.text += "secError1 "+secError.message;
            }

Когда я запускаю приложение локально, оно работает!Однако, когда я загружаю его на свой сервер, я получаю ошибку безопасности песочницы (# 2048).Приложение Flash размещено на том же сервере, что и сервер сокетов, и на месте есть файл междоменной политики.

Ответы [ 3 ]

0 голосов
/ 03 декабря 2010

Вы действительно загружаете файл политики междоменного домена?Насколько я знаю, Flash Player пытается автоматически загрузить только следующий файл: http://www.example.com/crossdomain.xml.Если ваш файл находится в другом месте, вы должны загрузить его:

Security.loadPolicyFile("http://www.example.com/subfolder/crossdomain.xml");

Кроме того, даже если приложение находится на том же сервере, Flash Player считает, что http://www.example.com" отличается от http://example.com",, поэтомуВы должны убедиться, что вы включили эту возможность в файл междоменной политики:

<allow-access-from domain="*.example.com"/>
0 голосов
/ 05 декабря 2010

Вам необходимо передать файл crossdomain.xml сокету, потому что при работе с сокетом не работает ни один файл политики в корне веб-приложения.

Вот образец: http://www.blog.lessrain.com/as3-java-socket-connections-to-ports-below-1024/

0 голосов
/ 03 декабря 2010

Возможно ли вам использовать php прокси?Я должен был сделать это, документировал это здесь .Несмотря на то, что вы упомянули, что приложение находится на том же сервере и имеется файл crossdomain.xml, я, вероятно, не в курсе (кстати, Flash 10, насколько мне известно, нужен файл crossdomain.xml, отличный от предыдущих версий).

...