|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
XMLSocket. Какие могут быть причины не возможности соединится с XML-сервером
Господа, имеется следующий наистандартнейший код на AS2
vHost = "127.0.0.1"; vPort = 2345; System.security.loadPolicyFile("http://"+vHost+"/crossdomain.xml"); var xsConnection:XMLSocket = new XMLSocket(); var bConnected:Boolean = xsConnection.connect(vHost,Number(vPort)); xsConnection.onConnect = function(bSuccess:Boolean):Void { if(bSuccess) { trace("Успешное соединение с сервером "); } else { trace("Не могу соединиться с сервером "); } } xsConnection.onClose = function () { trace("Connection to server lost."); } xsConnection.onData = function(sData:String):Void { ///обработка XML } На сервере (apache) находится файл crossdomain.xml в корне (http://127.0.0.1/crossdomain.xml) <?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="2345" /> </cross-domain-policy> 127.0.0.1 - - [30/Oct/2008:17:51:39 +0500] "GET /interfaces/interface.swf HTTP/1.1" 200 273860 127.0.0.1 - - [30/Oct/2008:17:51:39 +0500] "GET /interfaces/interface.ini HTTP/1.1" 304 - 127.0.0.1 - - [30/Oct/2008:17:51:39 +0500] "GET /crossdomain.xml HTTP/1.1" 304 - и последующий разрыв соединения). При запуске тойже самой ХТМЛ локально все работает (соединение, обмен данными). В чем может быть подвох? (PS пробовал экспериментировать с кодировкой crossdomain.xml - не помогло) |
|
|||||
Вроде все правильно
Сам сервер не может обрывать? |
|
|||||
исключено. Думаю сама флэшка рвЕт соединение. Как бы проверить меняется ли политика доступа в самой флэшке после считывания crossdomain.xml?
Добавлено через 10 минут исключено. Думаю сама флэшка рвЕт соединение. Как бы проверить меняется ли политика доступа в самой флэшке после считывания crossdomain.xml? Последний раз редактировалось jazzz_man; 31.10.2008 в 12:10. Причина: Добавлено сообщение |
|
|||||
тут мне когда то такое присоветовали.
1. открываем ноутпад 2. ставляем туды такой текст CLS ECHO OFF ECHO Registering JobTest SWF Folder in FlashPlayer Security Trust Folder... ECHO %CD% > "%APPDATA%\Macromedia\Flash Player\#Security\FlashPlayerTrust\JobTest%RANDOM%.cfg" ECHO Done. Please restart your Browser if it launched. PAUSE EXIT 4. переиминувуем в .BAT 5. запускаем.
__________________
чиню баги по скриншотам и фотографиям кода |
|
|||||
Цитата:
А? Работает ли? А смысл локально? Он же не будет всем посетителям такое писать?! |
|
|||||
Скачал с сайта Флэш плеер с дебагером - вот ссылочка
http://kb.adobe.com/selfservice/view...4266&sliceId=1 (как настроить подробно описано здесь http://www.adobe.com/devnet/flashpla...ing_and_Fixing) смотрю в логах OK: Root-level SWF loaded: http://localhost/interfaces/interface.swf OK: Policy file accepted: http://127.0.0.1/crossdomain.xml OK: Searching for <allow-access-from> in policy files to authorize data loading from resource at xmlsocket://127.0.0.1:2345 by requestor from http://localhost/interfaces/interface.swf[ Error: Request for resource at xmlsocket://127.0.0.1:2345 by requestor from http://localhost/interfaces/interface.swf has failed because the server cannot be reached. Добавлено через 5 минут System.security.allowDomain("*"); тоже прописал, но как видно из предыдущей мессаги дело не в этом )) Последний раз редактировалось jazzz_man; 01.11.2008 в 22:16. Причина: Добавлено сообщение |
|
|||||
я тут недавно исполнил пару поделок на SmartFoxServer.
давно не работал с сокетными серверами.. Так вот. SmartFoxServer присылает crossdomain прям при попытке конекта. Попробуйте малость можифицировать свой сокет сервер.
__________________
чиню баги по скриншотам и фотографиям кода |
|
|||||
Спасибо, помогло. Использую только один порт, на котором работает XMLSocket. При подключении на этот порт flash присылает <cross-domain-policy> запрос, в ответ отсылаем текст из crossdomain.xml с 0. Разрывать соединение необязательно т.к. флешка сама разрывает соединение получив политику безопасности.
ЗЫ. Для себя вывел такое правило обязательно запускать флэш в режиме отладки, т.к. при любой ошибке (описке) в crossdomain.xml флэшка ни в какую не хочет соединяться с сервером. ЗЗЫ. Привожу алгоритм настройки флэш плеера с дебагером (напоминаю, плеер с дебагером лежит здесь http://kb.adobe.com/selfservice/view...4266&sliceId=1 ), для тех кому лень читать ману на аглицком: Отредактировать( или если такого файла нет то создать) mm.cfg конфигурационный файл. Этот файл должен находится здесь: Windows: C:\Documents and Settings\username Windows Vista: C:\Users\username Macintosh: /Users/username Linux: /home/username Для ведения логов добавить в этот файл mm.cfg следующие строки PolicyFileLog=1 # Enables policy file logging PolicyFileLogAppend=1 # Optional; do not clear log at startup Лог-Файл называется policyfiles.txt, и находится он в директории: Windows: C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs Windows Vista: C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs Macintosh: /Users/username/Library/Preferences/Macromedia/Flash Player/Logs Linux: /home/username/.macromedia/Flash_Player/Logs Последний раз редактировалось jazzz_man; 03.11.2008 в 15:30. |
Часовой пояс GMT +4, время: 22:22. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|