Flash + PHP (Сокет)
Здравствуйте. Есть проблема. Сокет на PHP, клиент на флеше. При запуске из среды - все работает на ура, при запуске выложенной флешки с сервера - она тупо посылает запрос полиси файла, в упор не видя ответа сервера. Кто сталкивался, в чем бок?
PHP код:
Код AS1/AS2:
|
Кроссдоменник надо отправлять тогда, когда пришел запрос оного с клиента, а не постоянно.
|
Хм. Я отправляю кросдомен сразу после соединения флеша с сервером. Не совсем понял что неправильно. Да и почему из ИДЕ все работает, а при запуске флеша с сервера - нет.
Там дальше идет код, который проверяет запросы от клиента и если там присутствует <policy-file-request/> - он опять повторяет XML ответ с кросдоменом. Бестолку. При запуске из ИДЕ выглядит так 1. клиент соедняется 2. сервер отправляет кросдомен 3. клиент шлет Boss 4. идет обмен данными При запуске с сервака 1. клиент соединяется 2. сервер отправляет кросдомен 3. клент почемуто спрашивает <policy-file-request/> 4. сервер опять его отправляет 5. connetion failed |
всё должно быть не так.
1. клиент соединяется 2. сервер ждет 3a если клиент шлет <policy-file-request />, то сервер шлет кроссдоменник и отключается (потому что клиент все равно отключится после получения кроссдоменника) 3b если пришел обычный запрос от клиента - шлем обычные данные |
Сделал сейчас так, вроде соединение прошло, но как-то странно, нет передачи данных после соединения. Что значит "сервер отключается" - можно подробнее с примером кода?
|
непонятно - кури маны!
Рассматривай это так. Когда клиенту нужна политика безопасности, то перед тем, как подключить к серверу твой сокет-клиент, он подключается СВОИМ. Всё что том умеет, так это отправить запрос, дождаться ровно однго ответа и отключится. Т.е. после отправки политики сервером, мы от клиента больше ничего не ждем, это НЕ НАШ КЛИЕНТ. Код:
if (strncmp(securityRequest,buf,strlen(securityRequest))==0){ //если запрос на доступ - отдать ответ, разорвать соединение |
А ссылку на пресловутый мануал можно? С удовольствием накурился бы - задолбался по инету искать.
Сейчас попробую как вы написали сделать. Добавлено через 4 минуты Таки работает, спасибо большое. Код для тех, кто наткнется на пост в будущем: PHP код:
|
PHP код:
<policy-file-request/> не всегда приходит целиковым, а часто бьётся на части. |
Цитата:
в правила Форума бы ввести эту практику Есть проблема -> Обсуждение -> Вот решение |
как вообще тут можно читать подцвеченный PHP... у меня глаза кровью наливаются сразу...
кстати лучше не использовать Код:
"flush();ob_flush();" лучше в самом верху вставте: Код:
ob_implicit_flush(); |
Часовой пояс GMT +4, время: 13:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.