Справка по междоменному файлу для сокета ActionScript 3

Вот мой код ActionScript:

  var S:Socket=new Socket("127.0.0.1",2222);

Вот мой файл CrossDomain.XML (расположен по адресу http://127.0.0.1/crossdomain.xml)

  <?xml version="1.0"?>
  <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
  <cross-domain-policy>
  <allow-access-from domain="*" to-ports="2222"/>
  </cross-domain-policy>

Вот ошибка, которую я получаю

  Ignoring policy file at xmlsocket://127.0.0.1:2222 due to incorrect syntax. 

Поскольку я никогда не использовал его раньше, я не понимаю, что не так с синтаксисом моего файла CrossDomain.

Пожалуйста помоги.


person Joshua    schedule 02.02.2010    source источник


Ответы (1)


Файлы политики сокетов работают немного иначе, чем файлы политики HTTP; в частности, они не обслуживаются через HTTP или порт 80.

Вместо этого Flash Player проверяет файловый сервер политик (порт 843 по умолчанию) или, при необходимости, на открываемом сокете (для вас порт 2222).

Файловый сервер политики — это сокет, который отвечает на <policy-file-request/> действительным файлом политики. То, что происходит с вашим сообщением, вероятно, отправляет запрос и возвращает что-то другое, кроме файла политики, следовательно, недопустимый синтаксис из порта 2222.

Существует множество ресурсов и ряд вопросов здесь, на SO. Вот одно руководство от Adobe.

person Michael Brewer-Davis    schedule 02.02.2010
comment
Это точно был ответ на мой вопрос! Как только я запрограммировал свой сокет так, чтобы он возвращал мой файл crossdomain.xml ЧЕРЕЗ СОКЕТ, когда он получал сообщение ‹policy-file-request/›, внезапно все жалобы Flex на это исчезли. Спасибо! - person Joshua; 02.02.2010