Бесплатно скачать Adobe Flash Player
Flash Ripper RSS Readers

Adobe AIR: отслеживаем доступность сетевых ресурсов

Если вы создаете работающее с сетевыми ресурсами AIR-приложение, то в процессе отладки рано или поздно возникнет задача: проверить доступность сети и правильно обработать возможные ситуации, такие, как: сети нет, сеть есть на старте приложения, но пропадает в процессе работы; сеть появляется снова после пропажи и т.д. Точнее, нас интересует даже не сеть, а доступность конкретных ее ресурсов типа веб-сервисов.

Задача проверки доступности сетевых ресурсов легко решается в Adobe AIR, тут надо только знать рецепт — и никаких хаков.

Кто здесь? Это класс NativeApplication и событие networkChange

AIR-класс NativeApplication распространяет событие networkChange каждый раз, когда с сетью происходит что-то существенное типа пропажи или появления подключений. Заковыка в том, что это событие ровным счетом ничего не говорит о сути происходящего с сетевыми подключениями. Это событие лишь ставит приложение перед фактом изменения состояния сети. Разбираться в том, что случилось с важными для приложения сетевыми ресурсами, должен разработчик приложения. Вот как он это делает:

Рецепт Номер Один: проверяем, доступен ли сетевой ресурс

Рецепт в том, чтобы при появлении события networkChange пинговать определенный сетевой ресурс с помощью HEAD-запроса самым обычным URLLoader'ом. Рецепт придуман не мною и не сегодня; он существует еще со времен Apollo Alpha и хорошо описан: Adobe AIR: Detecting network connectivity. Там вы найдете два примера кода: один для SWF- и один для HTML-приложения. Возьмите любой из них и у вас не останется вопросов. Да и какие тут могут быть вопросы: мы просто отлавливаем событие networkChange и пингуем ресурс, например, домстраницу нашего целевого сайта, слушаем, что придет в ответ на пинг, разбираем этот ответ и решаем, что с этим делать.

Удивительно, что этот рецепт находится только на одной странице в сети, похожей на исчезнувшую отовсюду доку по Apollo. В данном случае не устаревшую. Этот рецепт помог мне избежать головной боли при отладке завязанного на сеть AIR-приложения. Но это еще не все.

Рецепт Номер Два: следим за сетью через Adobe AIR Service Monitor Framework

Официально рекомендуемая Adobe техника мониторинга сети для AIR-приложений: Adobe AIR: Monitoring network connectivity. Эта техника сложнее, чем описанная выше, но и позволяет добиваться более точных результатов; кроме того, она может также использоваться для мониторинга сокетных соединений. Для решения этих задач в Adobe создали небольшой фреймворк, хранящийся в AIR SDK по адресу "[AIR_SDK]/frameworks/servicemonitor.swf", а во Flex SDK — в библиотеках: "[FLEX_SDK]/frameworks/libs/air/servicemonitor.swc". По сути, этот фреймворк инкапсулирует в себя код, подобный коду из первого рецепта, а также дополняет его новой функциональностью. Сейчас там есть есть ServiceMonitor и SocketMonitor.

Это решение определенно будет развиваться Adobe (две последние ссылки ведут на доку к Flex Gumbo), а базовые задачи проверки доступности ресурсов решает уже сейчас.

Писал Rost, 13 Август 2008 20:11

Найдены баги:

ага ..ю про это не adobe onair тожк рассказывали

Artem Brigert - 15 Август 2008 15:58



Это запись из категории 'Adobe AIR'. 10 еще cвежих:

Архивы по категориям:

3D-18, Adobe AIR-38, Animation-1, Apache Ant-1, Architecture-1, ARP-1, Art-26, Articles-26, AS3-57, Books-9, Business-3, Cairngorm-3, CI-1, Classes-10, Coding-31, Community-118, Components-19, Contests-30, conventions-1, Cool-Job-10, Debug-21, Design-28, Development-84, ecology-4, EMO-2, Events-17, Extensions-2, FAQ-9, FDS-1, Flash and html-8, Flash Player-38, Flash Updates-12, flash-on-devices-1, Flash-scene-1, flash10-4, FlashLite-2, Flex-49, Flex 2-80, flex4-3, flexcamp-2, Flickr-1, FMS-2, FPUG-61, frameworks-1, Games-20, Good Job!-44, HaXe-16, Health-2, Humor-11, Ideas-14, IV-1, JavaScript-2, Job-30, JSFL-8, Links-2, Linux-3, Maps-1, Math-8, Money-16, music-1, MXML-1, Open Source-16, Optimization-4, parenting-3, Patterns-2, Personalities-27, Philosophy-4, Politics-1, posters-1, Preloading-3, Productivity-10, PureMVC-11, Pv3d-1, Rafpug-5, Red5-3, Remoting-11, Resources-21, Ruby-6, SAAS-1, Security-11, SEO-9, Silverlight-7, Sound-3, sport-4, Strategy-122, Tamarin-2, Tools-113, Training-3, Trash-8, URAFPUG-14, Urgent-1, Usability-6, Video-6, VoIP-7, Wallop-1, Wishlist-3, XML-1, Архив всех записей (большой)

За последние месяцы:

Ноя 2008: Ноябрьская встреча RAFPUG 12 — для креативных, В продолжение темы флэш-блогов, весь Ноя

Окт 2008: Ура — вторая лицензия Alternativa3D уезжает в Киев!, Влещь на глагне III IIIIIII?, весь Окт

Сен 2008: Встречайте Open Source Flash Media Server — Mammoth, Срочно нужен толковый Flex-разработчик в Харькове (+Java), весь Сен

Авг 2008: Flex Gangsta Rap Video WTF Bro?, 27 сентября — встреча UAFPUG во Львове и плюшки от Adobe, весь Авг

Июл 2008: Тенденции среди работодателей: Adobe Flex, Adobe AIR, Silverlight, Спорт спасет красоту, которая спасет мир!, весь Июл

Июн 2008: Попытка предварительных выводов о встрече аниматоров, Онлайн трансляция встречи аниматоров в Донецке, весь Июн





Примечания:
Статус документа
: в процессе
   2002-2007 Производство: Рост Прибыли · О проекте · Подписка на новости (RSS)