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

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

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

Регистрация: Apr 2009
Сообщений: 409
По умолчанию политика безопасности flashSocket

Здравствуйте, имеется сервер node.js с модулем socket.io и policefile . И имеется флешка с подключенной библиотекой flashSocket https://github.com/simb/FlashSocket.IO . Проблема возникла с файлом безопасности. сервер отдаёт на 843 порту:
Код AS3:
<?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>
Но при загрузке флешки firebug показывает запрос файла с порта 8080, к которому конектится сам flashSocket, на что получает ответ "Welcome to socket.io."
При этом почему он ищет его именно там не ясно, потому что в классе flashSocket явно указано
Код AS3:
var policyUrl:String = "xmlsocket://" + URLUtil.getServerName(wsUrl) + ":843";
Security.loadPolicyFile(policyUrl);
впрочем закоментирование этой строки ни на что не влияет. в чем может быть дело?


Последний раз редактировалось iNils; 16.02.2013 в 19:37.
Старый 16.02.2013, 18:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Security.loadPolicyFile(policyUrl);
При коннекте к сокету, флешка сама постучится на 843 порт, не нужно ей этого указывать. Сервер примет подключение и сразу отправит ей файл политики. После этого соединение должно закрываться. После получения файла флешка уже может коннектиться на любой другой порт.

Старый 16.02.2013, 19:16
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 3  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Я и так не указываю, но firebug показывает что идет запрос на crossdomain.xml на 8080 порт. Флешка из браузера не подключается. 5.187.4.231:843 вот ссылка которая передаётся сюда Security.loadPolicyFile(policyUrl);

Старый 16.02.2013, 19:41
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 4  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
У меня тоже были подобные проблемы. Я решил не заморачиваться, тем более слушать еще один лишний порт, зачем? С тех пор мои демоны отдают файл политики по основному порту, вот и все.
__________________
мой пустой блог

Старый 16.02.2013, 20:43
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 5  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
а как его отдать, если основной порт сокет-соединение, а флешка долбит http гет запрос.

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

Регистрация: Nov 2010
Сообщений: 497
Firebug вам ничего не покажет скорее всего. Флеш-плеер за policy-file ходит не через http-соединение, а через обычный сокет. А вот в том, что у вас crossdomain для сокета отдается правильно (на 843), я сильно сомневаюсь. У меня httpfox показывает какой-то status-line в ответе. И online-telnet на подключение какую-то мелкую html выдает. Вы веб-сервером что ли пытаетесь отдать policy-file? Не выйдет. Совсем не выйдет. Нужно простенький socket-сервер писать.

Старый 16.02.2013, 22:29
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 7  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Цитата:
а как его отдать, если основной порт сокет-соединение, а флешка долбит http гет запрос.
Почему http гет запрос? Не знаю, у меня сокет-клиент коннектится и отправляет текстом "<policy-file-request/>".
А, слушай. Так сокет-соединения запрос ты в фаербаге и не увидишь. Это надо снифферм смотреть. А http get запрос, то он на веб-сервер отправляет, ищет crossdomain.xml в папке. Это разные вещи же.
__________________
мой пустой блог

Старый 16.02.2013, 23:16
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 8  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Спасибо, но все равно странно что ищет crossdomain.xml не на 80 порту, а порт 8080 указан у меня только в инициализации сокета.
так а как с сокетом осущесnвляется проверка политики? если я при коннекте отправляю сообщение на получение policefile, то что должен вренуть сервер? как я понимаю отправить ему этот файл как message - не правильная идея.

Старый 17.02.2013, 01:12
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 9  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Идея как раз правильная. После получения <policy-file-request/> нужно отправить ему ответ и закрыть соединение. Единственный неочевидный момент - в конце сообщения еще нулевой байт нужно добавить.
Официальная справка по этому поводу (ближе к концу секции Connecting to sockets описано). Можете еще мой пример здесь посмотреть, там тоже есть выдача policy file.

Старый 17.02.2013, 09:55
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 10  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Что то так и не получилось разобраться.
Как я понимаю https://github.com/3rd-Eden/FlashPolicyFileServer этот модуль и занимается отправкой файла политики с нулевым байтом при первом коннекте, висит он при этом на 843 порту и работает нормально 5.187.4.231:843 .
Он же грузится классом FlashSocket перед коннектом xmlsocket://5.187.4.231:843
Однако консоль сервера показывает что файл не отдается при коннекте из флеша(из браузера ок)
Консоль браузера же не выбивает ошибку безопасности:
dataChanel.addEventListener(FlashSocketEvent.SECURITY_ERROR, function (e:FlashSocketEvent) { Console.log('err'); } );

на основной 8080 порт, запроса <policy-file-request/> так же нет, то есть сервер вообще не видит нового подключения.
Вопрос почему флешка ищет кроссдоменник здесь 5.187.4.231:8080 , также остаётся не понятным, даже если он не для сокета.

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

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

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


 


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


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