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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.01.2009, 09:29
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 1  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
Attention Не работает loadPolicyFile

Есть проблема с загрузкой\использованием политик безопасности. Имеем: тест-клиент (код см. ниже) и сокет-сервер. В задачу сокет-сервера входит ответ на запрос политики безопасности и дальнейшее взаимодействие с клиентом по сокету.

Код клиента:
Код AS1/AS2:
var connVars:LoadVars = new LoadVars();
var loginServer:XMLSocket;
 
connVars.onLoad = function (success:Boolean) {
 if (success) {
  System.security.loadPolicyFile(connVars["policyFile"]);
  loginServer = new XMLSocket();
  loginServer.onConnect = onConnectLoginServer;
  loginServer.connect(connVars["host"], connVars["port"]);
 }
};
connVars.load("app.conf");
 
function onConnectLoginServer(success:Boolean) {
 trace("onConnectLoginServer() Success = " + success);
 //Передача данных
}
Содержимое возвращаемой сервером политики-безопасности для простоты разбирательства:
Код:
<cross-domain-policy>
 <allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
Если сокет-сервер отвечает на запрос-политики в течение 3х секунд - все хорошо. Политика передается, общение по сокету начинается. Вот лог policyfiles.txt успешного соединения:
Код:
ОК: Выполнена загрузка SWF-файла корневого уровня: http://**********************.swf
ОК: Выполняется поиск директив <allow-access-from> в файлах политики, чтобы авторизовать загрузку данных из ресурса по адресу xmlsocket://xxx.yyy.ru:port инициатором запроса из http://**********************.swf
ОК: Файл политики принят: xmlsocket://xxx.yyy.ru:port 
ОК: Запрос ресурса на xmlsocket://xxx.yyy.ru:port  источника запроса из http://**********************.swf разрешен согласно файлу политики на xmlsocket://xxx.yyy.ru:port
Если сокет-сервер НЕ отвечает на запрос-политики в течение 3х секунд - все плохо. Сервер передает политику (допустим через 10 секунд), но клиенту это уже не важно - по непонятной причине вступает в действие таймаут флэшплеера, хотя этого не должно происходить, потому что я использую loadPolicyFile() (выдержка из доков Адоба: When Flash Player requests socket policy files by default, it waits only 3 seconds for a response ... WHEN YOU CALL LOADpOLICYfILE RATHER THAN ALLOWING fLASH pLAYER TO CHECK LOCATIONS BY DEFAULT, fLASH pLAYER WILL WAIT AS LONG AS NECESSARY FOR A RESPONSE FROM A SOCKET POLICY FILE SERVER, RATHER THAN TIMING OUT AFTER 3 SECONDS.).

Вот лог policyfiles.txt НЕуспешного соединения:
Код:
ОК: Выполнена загрузка SWF-файла корневого уровня: http://**********************.swf 
ОК: Выполняется поиск директив <allow-access-from> в файлах политики, чтобы авторизовать загрузку данных из ресурса по адресу xmlsocket://xxx.yyy.ru:port инициатором запроса из http://**********************.swf 
Предупреждение: На xmlsocket://xxx.yyy.ru:843 истекло время (3 сек) ожидания файла политики для сокета. Это не должно привести к каким-либо проблемам, однако см. описание на веб-сайте http://www.adobe.com/go/strict_policy_files_ru.
Предупреждение: На xmlsocket://xxx.yyy.ru:port истекло время (3 сек) ожидания файла политики для сокета. Это не должно привести к каким-либо проблемам, однако см. описание на веб-сайте http://www.adobe.com/go/strict_policy_files_ru.
Ошибка: Запрос ресурса на xmlsocket://xxx.yyy.ru:port  источника запроса из http://**********************.swf отклонен из-за отсутствия разрешений в файле политики.
Кто нибудь с этим сталкивался?
Проверяется это очень легко - перед возвратом сервером ответа на запрос политики безопасности вставить например sleep(10 sec);

Старый 09.07.2009, 10:31
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 2  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
У меня проблема еще запущенее.
Настроил логи политики безопасности

Цитата:
ОК: Выполнена загрузка SWF-файла корневого уровня: file:///C|/terbooter/testXMLSocket/bin/xmlsocket.swf
В логи выводит
Цитата:
connectHandler: [Event type="connect" bubbles=false cancelable=false eventPhase=2]
closeHandler: [Event type="close" bubbles=false cancelable=false eventPhase=2]

через какое-то время
securityErrorHandler: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Нарушение изолированной среды: file:///C|/terbooter/testXMLSocket/bin/xmlsocket.swf не может загрузить данные из 192.168.0.5:4242."]
порт 4242 точно, открыт.
порт по которому пытаюсь грузить политику безопасности тоже открыт.
Меня смущает отсутствие в файле лога политики безопасности предупреждения что не могу загрузить файл политики безопасности.

Добавлено через 1 минуту
На сервере не можем отловить запроса о загрузке политики безопасности.
Обычный запрос приходит

Старый 09.07.2009, 14:09
marat_sa вне форума Посмотреть профиль Отправить личное сообщение для marat_sa Посетить домашнюю страницу marat_sa Найти все сообщения от marat_sa
  № 3  
Ответить с цитированием
marat_sa
 
Аватар для marat_sa

Регистрация: Nov 2006
Сообщений: 487
Отправить сообщение для marat_sa с помощью ICQ Отправить сообщение для marat_sa с помощью Skype™
некропостер =)

1) А что пытаешься сделать? Напиши поподробнее плиз
2) Почему локальные тесты? Попробуй в сети нормально потестить.
3) Проверь crossdomain.xml
__________________
Стой! Опасная зона! Работа мозга!

Старый 20.07.2009, 14:58
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 4  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Проблема была в другом.
Не понятно почему XMLSocket коннектился, посылал данные на сервер, но не получал их. (Вот я и подумал что проблема с файлом политики безопасности)

Затем я просто заменил на обычный Socket и все заработало.

А лог не писался, потому что Local Security Sandbox и так все позволяет,
поэтому флэшплеер не грузит файл политики.

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

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

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


 


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


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