Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.10.2011, 12:03
freemtrg вне форума Посмотреть профиль Отправить личное сообщение для freemtrg Найти все сообщения от freemtrg
  № 1  
Ответить с цитированием
freemtrg

Регистрация: Jun 2011
Сообщений: 10
По умолчанию ошибка изолированной среды при загрузке URLloader

в коде вызывается:
Код AS1/AS2:
Security.loadPolicyFile("http://" + host+ ":8888"); //host - ip компьютера, который находится в локалке
var r:URLRequest = new URLRequest();
r.url = "http://" + host + "/socket.io/1/";
var ul:URLLoader = new URLLoader(r);
это вызывает ошибку:
-Подключение к http://192.168.1.9:8001/socket.io/1/ прервано – нет разрешения от Main.swf
-Нарушение изолированной среды: .../Main.swf не может загрузить данные из http://192.168.1.9:8001/socket.io/1/

На 8001 порту host'a висит socket_server, который при запросе http://192.168.1.9:8001/socket.io/1/ отдает flashsocket'aм параметры для работы. Но flash блокирует этот запрос.

На 8888 порту host'a висит policy_server который отдает crossdomain.xml следующего содержания:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>


Последний раз редактировалось freemtrg; 31.10.2011 в 12:05. Причина: структурирование кода
Старый 31.10.2011, 12:53
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
А откуда загружается флешка? Очень похоже, что loadPolicyFile просто игнорируется.

Цитата:
An author can use the loadPolicyFile() method to load a policy file from another location. However, if
there is no master URL policy file, then loadPolicyFile() cannot access other locations
; this is because
the default meta-policy for URL policy files specifies that only the master policy file can grant server access
permissions.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 31.10.2011, 13:17
freemtrg вне форума Посмотреть профиль Отправить личное сообщение для freemtrg Найти все сообщения от freemtrg
  № 3  
Ответить с цитированием
freemtrg

Регистрация: Jun 2011
Сообщений: 10
флешку запускаю со своего компьютера, который имеет доступ к локальной сети (в частности к host'у). В браузере crossdomain.xml и http://192.168.1.9:8001/socket.io/1/ спокойно открываются. Причем у меня тоже такое же ощущение, что он просто игнорирует Security.loadPolicyFile,
но я не пойму, чем это может быть вызвано.

Кстати забыл указать, в параметрах публикации - безопасность при локальном воспроизведении установлено доступ только к сети.


Последний раз редактировалось freemtrg; 31.10.2011 в 13:21.
Старый 31.10.2011, 15:40
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Дык у вас полиси загружается с 8888, а urlloader лезет по 8001. Это разные домены безопасности. Это так же, как брать полиси из абсолютно левого адреса. Действовать оно будет только на http(s)://host:port.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 31.10.2011, 17:54
freemtrg вне форума Посмотреть профиль Отправить личное сообщение для freemtrg Найти все сообщения от freemtrg
  № 5  
Ответить с цитированием
freemtrg

Регистрация: Jun 2011
Сообщений: 10
Хм, я думал что если перед операцией загрузить полиси в котором разрешен доступ к любым портам, то он потом без проблем будет на них стучаться...
Недоразобрался я в документации, будем разбираться. Благодарю за ответ!
Тему пока не закрываю, возможно будут еще проблемы (или пригодится еще кому-нибудь ).


Последний раз редактировалось freemtrg; 31.10.2011 в 17:57.
Старый 31.10.2011, 21:26
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
К портам разрешает только xmlsocket policy file. URL Policy к нему не имеет отношения. Да что я пересказываю, вот источник.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 04.11.2011, 20:51
freemtrg вне форума Посмотреть профиль Отправить личное сообщение для freemtrg Найти все сообщения от freemtrg
  № 7  
Ответить с цитированием
freemtrg

Регистрация: Jun 2011
Сообщений: 10
Я внес следующие изменения в серверную часть:
на 843 порту так же висит полиси сервер для соккетов и отдает:
<?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="*"/>
</cross-domain-policy>

На 8001 порту (в корне т.е. на http://192.168.1.9:8001/crossdomain.xml) отдается такой полиси:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>

и даже более того, по запросу 192.168.1.9:8001/socket.io/crossdomain.xml отдается такой же xml как и в корне на 8001 порту. НО, при попытке подключения выдается "Игнорирование файла политики на http://192.168.1.9:8001/crossdomain.xml из-за отсутствия типа содержимого." И дальнейшее соединение (запрос по http://192.168.1.9:8001/socket.io/xhr-polling/) закрывается.
Что я сделал сейчас неправильно?

Добавлено через 22 часа 33 минуты
Итак, проблема оказалась до банального элементарной: cервер при отдаче полиси не добавлял в конце символ окончания строки '\0'

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
crossdomain , flash , sockets , urlloader
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.