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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Oct 2008
Сообщений: 4
Отправить сообщение для jazzz_man с помощью ICQ
Question 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
}
Публикую эту флэшку с опцией Access network only
На сервере (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>
При запуске на сервере ХТМЛ файла из которого загружается эта флэшка происходит считывание пресловутого crossdomain.xml файла политики это видно из логов:
Код:
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 -
НО СОЕДИНИТСЯ C XML-СЕРВЕРОМ(127.0.0.1:2345) ВСЕ РАВНО НЕ ПОЛУЧАЕТСЯ (происходит временная установка (на 1сек)
и последующий разрыв соединения). При запуске тойже самой ХТМЛ локально все работает (соединение, обмен данными).
В чем может быть подвох?

(PS пробовал экспериментировать с кодировкой crossdomain.xml - не помогло)

Старый 30.10.2008, 18:44
laurisgutmanis вне форума Посмотреть профиль Отправить личное сообщение для laurisgutmanis Посетить домашнюю страницу laurisgutmanis Найти все сообщения от laurisgutmanis
  № 2  
Ответить с цитированием
laurisgutmanis
 
Аватар для laurisgutmanis

Регистрация: May 2006
Адрес: Latvia, Riga
Сообщений: 66
Отправить сообщение для laurisgutmanis с помощью ICQ Отправить сообщение для laurisgutmanis с помощью Skype™
Вроде все правильно
Сам сервер не может обрывать?

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

Регистрация: Oct 2008
Сообщений: 4
Отправить сообщение для jazzz_man с помощью ICQ
исключено. Думаю сама флэшка рвЕт соединение. Как бы проверить меняется ли политика доступа в самой флэшке после считывания crossdomain.xml?

Добавлено через 10 минут
исключено. Думаю сама флэшка рвЕт соединение. Как бы проверить меняется ли политика доступа в самой флэшке после считывания crossdomain.xml?


Последний раз редактировалось jazzz_man; 31.10.2008 в 12:10. Причина: Добавлено сообщение
Старый 31.10.2008, 16:36
INK• вне форума Посмотреть профиль Отправить личное сообщение для INK• Посетить домашнюю страницу INK• Найти все сообщения от INK•
  № 4  
Ответить с цитированием
INK•
 
Аватар для INK•

Регистрация: Nov 2001
Сообщений: 105
Отправить сообщение для INK• с помощью ICQ
тут мне когда то такое присоветовали.
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
3. сохраняем.
4. переиминувуем в .BAT
5. запускаем.

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

Регистрация: May 2006
Адрес: Latvia, Riga
Сообщений: 66
Отправить сообщение для laurisgutmanis с помощью ICQ Отправить сообщение для laurisgutmanis с помощью Skype™
Цитата:
Сообщение от jazzz_man Посмотреть сообщение
исключено. ...меняется ли политика доступа в самой флэшке после считывания crossdomain.xml?
Может для начала попробывать просто:
Код:
System.security.allowDomain("*"); //при условии что >8 flash
А? Работает ли?

Цитата:
Сообщение от INK• Посмотреть сообщение
...
3. сохраняем.
4. переиминувуем в .BAT
5. запускаем.
А смысл локально?
Он же не будет всем посетителям такое писать?!

Старый 01.11.2008, 21:44
jazzz_man вне форума Посмотреть профиль Отправить личное сообщение для jazzz_man Найти все сообщения от jazzz_man
  № 6  
Ответить с цитированием
jazzz_man
 
Аватар для jazzz_man

Регистрация: Oct 2008
Сообщений: 4
Отправить сообщение для jazzz_man с помощью ICQ
Скачал с сайта Флэш плеер с дебагером - вот ссылочка
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.
теперь становиться ясно в чем загвоздка. Сама флэшка пытается считать политику безпасности с xmlsocket://127.0.0.1:2345 . А если я хочу чтобы флэшка считывала политику безопасности только 80 порта. Или если я работаю с сокетом, то политику безопасности нужно передавать с него же?

Добавлено через 5 минут
System.security.allowDomain("*"); тоже прописал, но как видно из предыдущей мессаги дело не в этом ))


Последний раз редактировалось jazzz_man; 01.11.2008 в 22:16. Причина: Добавлено сообщение
Старый 02.11.2008, 13:05
INK• вне форума Посмотреть профиль Отправить личное сообщение для INK• Посетить домашнюю страницу INK• Найти все сообщения от INK•
  № 7  
Ответить с цитированием
INK•
 
Аватар для INK•

Регистрация: Nov 2001
Сообщений: 105
Отправить сообщение для INK• с помощью ICQ
я тут недавно исполнил пару поделок на SmartFoxServer.
давно не работал с сокетными серверами..

Так вот. SmartFoxServer присылает crossdomain прям при попытке конекта.
Попробуйте малость можифицировать свой сокет сервер.

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

Регистрация: Oct 2008
Сообщений: 4
Отправить сообщение для jazzz_man с помощью ICQ
Спасибо, помогло. Использую только один порт, на котором работает 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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