Флешка не реагирует на cross-domain-policy (Ошибка 2048) ?
Доброго времени суток.
Уже несколько дней бьюсь над проблемой соединения флешки с сервером через сокет (оба на локалхост). Читал кажется всю необходимую информацию, даже установил специальную программку - сервер socket policy file server ( хотя в итоге у меня сервер должен быть на php ). Такое впечатление, что флешка не хочет воспринять ответ <cross-domain-policy>... (хотя запрашивает <policy-file-request/>). При попытке подключения по сокету всегда выдает ошибку securityError. В ответе на <policy-file-request/> у меня: Код:
<allow-access-from domain="*" to-ports="*" secure="false" /> |
Программка не нужна, просто еще один сокет сервер, ожидающий policy-file-request и отпарвляющий в ответ xml-строку с политикой доступа. По умолчанию порт, на котором флеш ищет файл crossdomain.xml - 843 (ну и еще тот, к которому подключаемся). С другого порта можно загрузить так: Security.loadPolicyFile("xmlsocket://" + Host + ":" + PolicyPort); Да, и secure="false", это просто рекомендация, лучше на вермя тестирования её убрать, для "чистого" резульатата :)
|
Да, да, именно так все воспринимаю,
эта програмка и есть сервер, который по идее должен выдать ответ на 843 порте на запрос <policy-file-request/>. Но дело в том, что когда отправляю этот ответ с помощью php сервера, все равно ошибка не исчезает. С помощью сервера на php отправляю Код:
"<cross-domain-policy><allow-access-from domain='*' to-ports='*' /></cross-domain-policy>\n"; что флеш получил ответ. |
1. Попробуйте сделать политику отдельным файлом (кстати и удобнее править будет в случае чего). Вот, взято с адобовского сайта:
Код:
<?xml version="1.0" encoding="utf-8"?> Флеш использует \0 как подтверждение конца блока данных. |
1) Да, пробовал и отдельный файл поставить на сервер, тоже не помогло.
2) Добавил \0 в конце ответа, т.е, получилось Код:
"<cross-domain-policy><allow-access-from domain='*' to-ports='*' /></cross-domain-policy>\n\0"; Заметил странность, когда флеш отправляет запрос на полиси, мой сервер на php почему-то отключается :-) . При отправке этого же запроса <policy-file-request/> вручную, такого не происходит. На всякий случай привожу код php сервера: PHP код:
|
Цитата:
Что значит отключается? Если обрывается соединение - так и должно быть. После получения политики сокет обрывает соединение и устанавливает по новой на назначенном порту. Попробуйте убрать всякие "you say" и т.п. Сервер политики должен только получать запрос политики, отдавать ответ с правилами политики и закрывать соединение после отдачи. Ничего лишнего не должно быть. |
Кодировка файла crossdomain.xml utf
А во флеше у меня Код AS3:
Кстати, в этом файле crossdomain.xml все символы вроде такие, что не должно иметь значение utf. А сервер на php действительно отключается, т.е, сама консольная программа отключается почему-то (а не соединение) , когда флешка пытается подкючиться по сокету :-) |
Цитата:
Вы не путаете понятия кроссдомена и сокет-политики? Для того чтобы подключить сокет-соединение, не нужно грузить файл политики отдельно (если он не лежит где-нибудь отдельно от сайта). Код AS3:
Ну и проверяйте свой php сервер. Раз он отключается при попытке коннекта, значит определенно имеет какие-то проблемы. |
Ок, спасибо
Действительно с php у меня видимо что-то нито, потому, что там не нормально работает также код записи лога в файл. Но вопрос в том, что я в начале использовал для ответа полиси не php, другой сервер специальный для флеша (называется Socket policy file server ). Тоже не исчезает ошибка securityError. Код подключения сокета во флешке у меня примерно такой же, как у Вас. Код AS3:
Вот сейчас слушаю порт 843. при подключении сокета пришел запрос <policy-file-request/> и потом соединение сразу же разорвано со стороны клиента (флешки очевидно). Флешка наверно не должна была так быстро сбрасывать соединение? Добавлено через 28 часов 29 минут Сменил номер порта подключения с 1000 на 12000, ошибка (securityError ) исчезла. Огромное спасибо за ответы :-) |
Часовой пояс GMT +4, время: 18:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.