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

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

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

Регистрация: Aug 2007
Адрес: Пенза
Сообщений: 17
По умолчанию Сокеты и политика безопасности

Народ, вот такая ситуация:
Есть пхп демон, который играет роль сокет-сервера, стоит на одном домене, есть flex приложение - клиент, который лежит на другом домене и коннектится к серверу. На стороне сервера в корне сервера лежит файл crossdomain.xml, со следующим содержимым:
Код HTML:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="9876"/>
</cross-domain-policy>
На сервере, в случае запроса через сокет "<policy-file-request/>" отправляю содержимое crossdomain.xml и закрываю сокет.

На клиенте по creationComplete() есть следующий код:
Код:
Security.loadPolicyFile('http://myhost.ru/crossdomain.xml');
В итоге, часто у пользователей появляется ошибка, вызываемая по евенту onSecurityError у класса Socket (сейчас не могу точно сказать что за ошибка, вечером напишу), и у меня у самого после обновления флеш-плеера появилась такая же ошибка, переустанавливал плеер, ставил более раннюю версию - ничего не помогает.
Вот адрес самой флешки: http://vkontakte.ru/apps.php?act=s&id=3933&mid=187882,
адрес crossdomain.xml: http://flyostrie.ru/crossdomain.xml

Старый 04.05.2008, 17:25
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
crossdomain.xml нужно отдавать либо по тому же сокету, к которому происходит коннект, либо по порту 843.

Т.е. для сокетных соединений crossdomain.xml, лежащий на http-сервере, работать не будет.

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

Регистрация: Aug 2007
Адрес: Пенза
Сообщений: 17
Все так и делаю, использую свой рабочий порт 9876, если приходит строка "<policy-file-request/>" - отдаю crossdomain.xml и рву коннект.

И еще главная непонятность - почему у кого то работает, а у кого то нет? Подозреваю что это зависит от версии flash - плеера.


Последний раз редактировалось etc; 04.05.2008 в 17:29.
Старый 04.05.2008, 17:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А где на клиенте строка Security.loadPolicyFile("xmlsocket://flyostrie.ru:9876"); ?

А подозрение верное, потому как раз в последнем билде плеера это реализовано.

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

Регистрация: Aug 2007
Адрес: Пенза
Сообщений: 17
Вообще она раньше вызывалась перед созданием сокета, но от неё толку не было и я её закомментил, то есть, другими словами сейчас её вообще нет.

Старый 04.05.2008, 17:34
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от sp2k6 Посмотреть сообщение
Вообще она раньше вызывалась перед созданием сокета, но от неё толку не было и я её закомментил, то есть, другими словами сейчас её вообще нет.
Теперь она нужна.

Старый 04.05.2008, 17:39
sp2k6 вне форума Посмотреть профиль Отправить личное сообщение для sp2k6 Найти все сообщения от sp2k6
  № 7  
Ответить с цитированием
sp2k6

Регистрация: Aug 2007
Адрес: Пенза
Сообщений: 17
ага, понял, то есть, у тех, у кого старая версия плеера и без этой "Security.loadPolicyFile("xmlsocket://flyostrie.ru:9876");" строки работало, а у тех, кто обновил плеер этой строки как раз и не хватает... Спасибо за разъяснение, дома перекомпилю - отпишусь о результате!
Но, вопрос, почему же тогда плеер отправляет запрос "<policy-file-request/>" серверу, если в коде нет запроса "Security.loadPolicyFile("xmlsocket://flyostrie.ru:9876");" ?

Старый 04.05.2008, 17:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Плеер всегда пытается стянуть кроссдоменник. Последний билд сначала лезет на 843-ий порт, потом на тот же порт, на который открыт сокет. Основной сокет по какому порту работает?

Старый 04.05.2008, 17:56
sp2k6 вне форума Посмотреть профиль Отправить личное сообщение для sp2k6 Найти все сообщения от sp2k6
  № 9  
Ответить с цитированием
sp2k6

Регистрация: Aug 2007
Адрес: Пенза
Сообщений: 17
По 9876.

Старый 04.05.2008, 18:27
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Хм, тогда не уверен, что строчка поможет.

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

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

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


 


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


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