|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
политика безопасности flashSocket
Здравствуйте, имеется сервер node.js с модулем socket.io и policefile . И имеется флешка с подключенной библиотекой flashSocket https://github.com/simb/FlashSocket.IO . Проблема возникла с файлом безопасности. сервер отдаёт на 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> При этом почему он ищет его именно там не ясно, потому что в классе flashSocket явно указано впрочем закоментирование этой строки ни на что не влияет. в чем может быть дело? Последний раз редактировалось iNils; 16.02.2013 в 19:37. |
|
|||||
Цитата:
|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Я и так не указываю, но firebug показывает что идет запрос на crossdomain.xml на 8080 порт. Флешка из браузера не подключается. 5.187.4.231:843 вот ссылка которая передаётся сюда Security.loadPolicyFile(policyUrl);
|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
а как его отдать, если основной порт сокет-соединение, а флешка долбит http гет запрос.
|
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Firebug вам ничего не покажет скорее всего. Флеш-плеер за policy-file ходит не через http-соединение, а через обычный сокет. А вот в том, что у вас crossdomain для сокета отдается правильно (на 843), я сильно сомневаюсь. У меня httpfox показывает какой-то status-line в ответе. И online-telnet на подключение какую-то мелкую html выдает. Вы веб-сервером что ли пытаетесь отдать policy-file? Не выйдет. Совсем не выйдет. Нужно простенький socket-сервер писать.
|
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
Цитата:
А, слушай. Так сокет-соединения запрос ты в фаербаге и не увидишь. Это надо снифферм смотреть. А http get запрос, то он на веб-сервер отправляет, ищет crossdomain.xml в папке. Это разные вещи же.
__________________
мой пустой блог |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Спасибо, но все равно странно что ищет crossdomain.xml не на 80 порту, а порт 8080 указан у меня только в инициализации сокета.
так а как с сокетом осущесnвляется проверка политики? если я при коннекте отправляю сообщение на получение policefile, то что должен вренуть сервер? как я понимаю отправить ему этот файл как message - не правильная идея. |
|
|||||
Регистрация: Nov 2010
Сообщений: 497
|
Идея как раз правильная. После получения <policy-file-request/> нужно отправить ему ответ и закрыть соединение. Единственный неочевидный момент - в конце сообщения еще нулевой байт нужно добавить.
Официальная справка по этому поводу (ближе к концу секции Connecting to sockets описано). Можете еще мой пример здесь посмотреть, там тоже есть выдача policy file. |
|
|||||
Регистрация: 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. |
|
« Предыдущая тема | Следующая тема » |
|
|