|
|
|||||
Регистрация: Apr 2010
Сообщений: 4
|
Flash + PHP (Сокет)
Здравствуйте. Есть проблема. Сокет на PHP, клиент на флеше. При запуске из среды - все работает на ура, при запуске выложенной флешки с сервера - она тупо посылает запрос полиси файла, в упор не видя ответа сервера. Кто сталкивался, в чем бок?
Security.allowDomain("domain.com"); Security.loadPolicyFile("xmlsocket://domain.com:PORT"); var socket:XMLSocket = new XMLSocket(); socket.onConnect = function(success:Boolean) { if (success) { trace("Connection succeeded!"); _root.msgArea.text="Connection succeeded!" socket.send("Boss"); } else { trace("Connection failed!"); _root.msgArea.text="Connection failed!" } }; XMLSocket.prototype.onData = function (src) { trace(src); xml = new XML(); xml.ignoreWhite = true; xml.parseXML(src); outputMsg.text=src } BTN.onPress=function(){ socket.send("Fucking XMLSoket") } socket.connect("IP", PORT) |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Кроссдоменник надо отправлять тогда, когда пришел запрос оного с клиента, а не постоянно.
|
|
|||||
Регистрация: Apr 2010
Сообщений: 4
|
Хм. Я отправляю кросдомен сразу после соединения флеша с сервером. Не совсем понял что неправильно. Да и почему из ИДЕ все работает, а при запуске флеша с сервера - нет.
Там дальше идет код, который проверяет запросы от клиента и если там присутствует <policy-file-request/> - он опять повторяет XML ответ с кросдоменом. Бестолку. При запуске из ИДЕ выглядит так 1. клиент соедняется 2. сервер отправляет кросдомен 3. клиент шлет Boss 4. идет обмен данными При запуске с сервака 1. клиент соединяется 2. сервер отправляет кросдомен 3. клент почемуто спрашивает <policy-file-request/> 4. сервер опять его отправляет 5. connetion failed |
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
всё должно быть не так.
1. клиент соединяется 2. сервер ждет 3a если клиент шлет <policy-file-request />, то сервер шлет кроссдоменник и отключается (потому что клиент все равно отключится после получения кроссдоменника) 3b если пришел обычный запрос от клиента - шлем обычные данные
__________________
мой пустой блог |
|
|||||
Регистрация: Apr 2010
Сообщений: 4
|
Сделал сейчас так, вроде соединение прошло, но как-то странно, нет передачи данных после соединения. Что значит "сервер отключается" - можно подробнее с примером кода?
|
|
|||||
Регистрация: Jan 2009
Сообщений: 1,651
|
непонятно - кури маны!
Рассматривай это так. Когда клиенту нужна политика безопасности, то перед тем, как подключить к серверу твой сокет-клиент, он подключается СВОИМ. Всё что том умеет, так это отправить запрос, дождаться ровно однго ответа и отключится. Т.е. после отправки политики сервером, мы от клиента больше ничего не ждем, это НЕ НАШ КЛИЕНТ.
__________________
мой пустой блог |
|
|||||
Регистрация: Apr 2010
Сообщений: 4
|
А ссылку на пресловутый мануал можно? С удовольствием накурился бы - задолбался по инету искать.
Сейчас попробую как вы написали сделать. Добавлено через 4 минуты Таки работает, спасибо большое. Код для тех, кто наткнется на пост в будущем:
Последний раз редактировалось MageMerlin; 17.04.2010 в 14:08. |
|
|||||
Регистрация: Aug 2008
Сообщений: 27
|
Не нашёл у вас в коде инициализацию $msgsock, но если делаете сравнение строки "<policy-file-request/>" с тем что пришло по сокету, то будет ошибка, иногда
<policy-file-request/> не всегда приходит целиковым, а часто бьётся на части. |
|
|||||
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
Цитата:
в правила Форума бы ввести эту практику Есть проблема -> Обсуждение -> Вот решение
__________________
Trapatatupatupa |
|
|||||
Регистрация: Aug 2008
Сообщений: 258
|
как вообще тут можно читать подцвеченный PHP... у меня глаза кровью наливаются сразу...
кстати лучше не использовать каждый раз. лучше в самом верху вставте: он все "echo" будет сразу отправлять в браузер сам. |
Часовой пояс GMT +4, время: 06:17. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|