`

[入门]AIR网络与通信(1)——监视网络连接(转载)

阅读更多

Adobe® AIR® 提供了一种方法,可以检查安装 AIR 应用程序的计算机的网络连接是否发生更改。如果应用程序使用的数据是从网络获取的,则此信息非常有用。而且,应用程序可以检查网络服务的可用性。

检测网络连接更改

AIR 应用程序可以在具有不确定且不断更改的网络连接的环境中运行。为了有助于应用程序管理到在线资源的连接,每当网络连接变为可用或不可用时 Adobe AIR 都会发送一个网络更改事件。应用程序的 NativeApplication 对象会调度该网络更改事件。为了响应该事件,可添加一个侦听器:

NativeApplication.nativeApplication.addEventListener(Event.NETWORK_CHANGE, onNetworkChange); 

并定义一个事件处理函数:

function onNetworkChange(event:Event) 
{ 
    //Check resource availability 
} 

Event.NETWORK_CHANGE 事件不是指示所有网络活动的更改,而是仅指示网络连接已更改。AIR 不尝试解释网络更改的含义。联网的计算机可能有许多真实和虚拟的连接,因此失去某个连接并不一定意味着失去了资源。而另一方面,新建连接也无法保证改善资源的可用性。有时,新建连接甚至可能阻止对之前可用资源的访问(例如,连接到 VPN 时)。

通常,应用程序确定其是否可连接到远程资源的唯一方法是,尝试连接该远程资源。为此,air.net 包中的服务监视框架为 AIR 应用程序提供了一个基于事件的方法,该方法可响应到指定主机的网络连接的更改。

注: 服务监视框架检测服务器是否对请求进行接受响应。这不保证完全连接。通常,可扩展的 Web 服务使用缓存和负载平衡设备将流量重定向到 Web 服务器群集。在这种情况下,服务提供商仅提供对网络连接的局部诊断。

服务监视基础知识

服务监视器框架独立于 AIR 框架并位于 servicemonitor.swc 文件中。为了使用该框架,servicemonitor.swc 文件必须包含在构建过程中。

重要说明: 若要在 Adobe® Flash® S3 Professional 中使用这些类,请将 ServiceMonitorShim 组件从“组件”面板拖到“库”中,然后将下面的 import 语句添加到 ActionScript 3.0 代码中:
import air.net.*;

在 Adobe® Flash® CS4 Professional 中使用这些类:

  1. 选择“文件”>“发布设置”命令。

  2. 单击 ActionScript 3.0 的“设置”按钮。选择“库路径”。

  3. 单击“浏览到 SWC”按钮,从而浏览到 Adobe Flash CS4/AIK1.1/frameworks/libs/air/servicemoniter.swc。

  4. 单击“确定”按钮。

  5. 将下面的 import 语句添加到 ActionScript 3.0 代码中:
    import air.net.*;

ServiceMonitor 类实现用于监视网络服务的框架并为服务监视器提供基本功能。默认情况下,ServiceMonitor 类的实例会调度有关网络连接的事件。在创建该实例后以及每当 Adobe AIR 检测到网络更改时,ServiceMonitor 对象会调度这些事件。此外,可以设置 ServiceMonitor 实例的 pollInterval 属性进而以指定的间隔(以毫秒为单位)检查连接,而不考虑一般的网络连接事件。直到调用 start() 方法时,ServiceMonitor 对象才检查网络连接。

URLMonitor 类(ServiceMonitor 类的子类)可检测针对指定的 URLRequest 的 HTTP 连接的更改。

SocketMonitor 类(也是 ServiceMonitor 类的子类)可在指定的端口检测到指定主机的连接的更改。

检测 HTTP 连接

URLMonitor 类确定是否可从端口 80(HTTP 通信的标准端口)向指定地址发送 HTTP 请求。以下代码使用 URLMonitor 类的实例来检测到 Adobe 网站的连接更改:

import air.net.URLMonitor; 
import flash.net.URLRequest; 
import flash.events.StatusEvent; 
var monitor:URLMonitor; 
monitor = new URLMonitor(new URLRequest('http://www.adobe.com')); 
monitor.addEventListener(StatusEvent.STATUS, announceStatus); 
monitor.start(); 
function announceStatus(e:StatusEvent):void { 
    trace("Status change. Current status: " + monitor.available); 
}

检测套接字连接

AIR 应用程序也可将套接字连接用于推模式连接。防火墙和网络路由器通常会因某些安全原因而对未授权端口上的网络通信进行限制。因此,开发人员必须考虑用户可能不具有建立套接字连接能力。

类似于 URLMonitor 示例,以下代码使用 SocketMonitor 类的实例在 6667(IRC 的常用端口)处检测套接字连接的连接更改:

import air.net.ServiceMonitor; 
import flash.events.StatusEvent; 
 
socketMonitor = new SocketMonitor('www.adobe.com',6667); 
socketMonitor.addEventListener(StatusEvent.STATUS, socketStatusChange); 
socketMonitor.start(); 
 
function announceStatus(e:StatusEvent):void { 
    trace("Status change. Current status: " + socketMonitor.available); 
} 
分享到:
评论

相关推荐

    ADOBEAIR完整入门与开发实录——使用FLEXFLASHAJAX开发AIR应用第01章-.pdf

    "ADOBE AIR完整入门与开发实录——使用FLEX FLASH AJAX开发AIR应用" 本书的主要内容是介绍Adobe AIR平台的开发实录,通过使用FLEX、FLASH和AJAX技术来开发RIA(Rich Internet Applications)。在本章中,作者首先...

    Flash+Flex+Air 移动开发入门经典——适用于Android、iOS、BlackBerry系统

    Flash+Flex+Air 移动开发入门经典——适用于Android、iOS、BlackBerry系统

    ADOBE_AIR完整入门与开发实录——使用FLEXFLASHAJAX开发AIR应用_第02章.doc

    这些特性使得AIR应用可以更加紧密地集成到用户的日常工作中,而不仅仅是依赖网络连接的在线应用。 在【AIR的安装与部署】中,提到了AIR Installer Badge和数字证书,这些是确保应用程序安全安装和验证开发者身份的...

    全AIR 的 Socket通信(air服务端、air客户端)

    在本文中,我们将深入探讨如何实现全AIR的Socket通信,主要关注AIR服务端和AIR客户端的构建。AIR,即Adobe Integrated Runtime,是一个跨平台的应用程序运行环境,允许开发者使用ActionScript 3创建桌面应用程序。...

    Flash+Flex+Air移动开发入门经典 pdf

    《flash+flex+air移动开发入门经典——适用于android、ios和blackberry》 第1章 flash、flex和air简介 1 1.1 adobe flash 1 1.2 actionscript 3.0 2 1.2.1 ecmascript 2 1.2.2 关键概念 3 1.3 flex框架 11 ...

    AIR入门(一)

    《AIR入门(一)——探索Adobe Integrated Runtime技术》 Adobe Integrated Runtime(AIR)是一种跨平台的应用程序运行环境,它允许开发者使用HTML、CSS、JavaScript、ActionScript等Web技术创建桌面应用程序。这篇...

    AdobeAIR——air的安装文件

    这是一个Installer文件,安装的是AdobeAIR软件。使用此软件可以使得air文件轻松安装。

    ZigBee编译器AIR入门

    AIR技术是一种基于IEEE 802.15.4标准的低功耗无线通信协议,广泛应用于物联网(IoT)、智能家居、传感器网络等领域。IAR编译器是专为ZigBee设备开发设计的强大工具,它提供了高效、稳定的编译环境,有助于开发者快速...

    air检查网络连接实例

    1. **NetworkMonitor类**:这是AIR提供的核心类,用于监控网络连接的可用性和状态。通过创建`NetworkMonitor`对象并监听其事件,我们可以实时获取网络连接的变化。 ```actionscript import flash.net.Network...

    AdobeAIR入门教程

    7. **网络通信**:学习如何使用XMLSocket、URLLoader等类进行网络通信,包括HTTP请求、WebSocket连接等。 8. **桌面集成**:探索如何利用Adobe AIR提供的API实现桌面级特性,如拖放操作、桌面通知、系统菜单集成等...

    Air Flex Sqlite通信

    1. **SQLite数据库连接**:首先,你需要创建一个SQLite数据库连接对象,这是与SQLite数据库交互的基础。在AS3中,你可以使用`flash.data.SQLConnection`类来完成这一步。 2. **打开数据库**:使用`SQLConnection`...

    GSM信令基础——移动通信技术

    在GSM系统中,信令是网络与移动设备间通信的关键部分,它确保了通话建立、数据传输以及网络资源管理的顺利进行。了解GSM信令基础对于理解移动通信技术至关重要。 一、GSM信令系统概述 GSM信令主要包括两个主要部分...

    Air780E在ThingsCloud的通讯

    在本文中,我们将深入探讨Air780E在ThingsCloud平台上的通信机制,特别是涉及到的网络注册信息查询、网络状态监控以及SIM卡管理等关键环节。这些知识点对于理解和使用Air780E进行物联网(IoT)应用开发至关重要。 ...

    adobe air 入门示例

    8. **API和功能使用**:AIR提供了许多API,比如访问本地文件系统、网络通信、数据库存储等,文章可能会展示如何利用这些API来扩展应用的功能。 9. **调试与测试**:开发过程中,调试和测试是必不可少的环节,文章...

    iPhone连接打印机airprint

    1. **设备连接**:首先,确保您的iPhone或其他iOS设备已连接到与打印机所在的同一Wi-Fi网络。这是AirPrint工作基础,因为无线打印依赖于设备间的网络通信。 2. **服务器角色**:在某些情况下,如果您的打印机不直接...

    Airprinter苹果手机连接打印机

    标题中的“Airprinter苹果手机连接打印机”涉及到的技术点主要是在iOS设备上如何通过AirPrint功能与本地打印机进行无线连接和打印。AirPrint是苹果公司推出的一项功能,它允许iPhone、iPad和iPod touch等设备无需...

    MFi Airplay入门

    【Airplay 入门知识详解】 Airplay 是苹果公司推出的一种无线互联协议,它允许用户通过WiFi网络将iPhone、iPad或iPod touch等设备上的多媒体内容(包括视频、音频和图片)传输到支持Airplay的第三方设备上。这项...

    AIR 入门教程和官方帮助文档

    通过阅读这些文档,你可以深入理解AIR的内部工作机制,学习如何利用它的特性,如本地文件系统访问、网络通信、桌面通知、多线程等。 六、实战练习 为了巩固所学,你可以尝试创建一个简单的AIR应用,比如一个桌面...

Global site tag (gtag.js) - Google Analytics