`

监测网络状态,离线/在线应用程序的实现

    博客分类:
  • flex
阅读更多

AIR与Flex web应用的另一区别在于可以动态监测网络状态,可以让开发者在网络连通或断线时用不同的方式处理程序,在Demo中我将用以下情况来表现AIR的离线与在线应用。

1. 用户在文本框中输入内容。文本框下方的保存按钮会动态显示当前网络状态: (在线)保存与(离线)保存.
2. 在用户点击保存按钮时如果网络在线,将对话框内容保存在服务器。
3. 如果保存时处于断线状态,将内容保存在本地文件中。
4. 当网络恢复时检查本地文件,如果有已经保存的内容,将内容传入服务器。

源代码很简单,不到100行,大家可以在最下方下载。现在我开始讲解

Demo操作方法

1. 按装运行demo,如果网络连接正常,你会看到文本框下的按钮为 (在线) 保存。
2. 输入任意信息,点击 (在线)保存 。你会看倒信息 “内容已上传服务器”。
3. 切断网络。大概3-5秒后你会看到文本框下方按钮变为(离线)保存。
4. 点击保存,你会看倒信息“内容已经在本地保存,会在下次连线时自动上传到服务器”。
5. 接痛网络,大概3--5秒后你会看倒信息 “缓存内容已上传服务器”。
6. Demo结束。

1. 启动应用程序后监控网络状态。

我们在 App的CreationComplete()中调用netWorkSyc来监控网络状态。

private function networkSyc():void{
//创建一个联接,使用HEAD表示不需要加载玩全部的页面。
var request:URLRequest = new URLRequest( “http://www.google.com”);
request.method = “HEAD”;

//用url创建监测对象,每3秒检查一次网络状态,如果网络状态发生变化,将结果返回到netWorkStatusHandle()
urlMonitor = new URLMonitor(request);
urlMonitor.pollInterval = 3000;
urlMonitor.addEventListener(StatusEvent.STATUS,netWorkStatusHandle);
urlMonitor.start();
}

//网络状态改变时响应该事件
private function netWorkStatusHandle(e:StatusEvent):void{
if(urlMonitor.available){
//如果有本地文件,假装上传服务器
if(this.checkLoaclFile()){
//Kevin TODO 上传服务骑
this.showAlert(”缓存内容已上传服务器”);
}
saveBtn.label = “(在线)保存”
}else{
saveBtn.label = “(离线)保存”
}
}

上面的networkSyc()方法中我使用了两个类的对象来实现网络监控,URLRequest 和 URLMonitor。我用URLRequest来建立一个连接对象request,连接的地址是www.google.com。然后已request作为构造参数创建URLMonitor对象。我就是靠它来完成对网络状态的监控。

监控原理很简单,当第一次执行networkSyc()时,urlMonitor会尝试连接www.google.com,然后将连接的结果发回到 netWorkStatusHandle(), 如果连接成功,urlMonitor.available会为true,反之为false。接下来每3秒检查一次网络状态,如果发生改变(连接成功变为连接失败或者连接失败变为连接成功),那么将再度触发StatusEvent.STATUS事件,调用netWorkStatusHandle()返回网络状态。

以上就是AIR监控网络的方式,大家如果感兴趣想知道更多URLMonitor的内容,可以在Help中搜索ServiceMonitor,它的sub class就是URLMonitor和SockterMonitor。

Demo中并没有真正在本地保存文件,保存与读取文件的方法我会在下一篇教程–“AIR的文件操作”中教给大家。

webstate

源文件下载
Demo

分享到:
评论

相关推荐

    浅谈MQTT监听设备上线与离线方法

    在IoT场景中,设备的上线与离线状态监控是至关重要的,它能帮助系统实时了解设备的工作状况,及时响应故障或异常。本文将深入探讨如何使用Java实现MQTT监听设备的上线与离线事件。 首先,我们要引入一个关键的库...

    android通过boatcast实现qq离线在线显示效果

    在Android开发中,Boatcast(Broadcast)是一种重要的组件,用于在应用程序之间传递消息和数据。本教程将详细讲解如何利用BroadcastReceiver实现QQ离线在线状态的显示效果,并且会涉及动态广播注册的方法。 首先,...

    网络游戏-网络应用程序管理器、方法、装置和移动终端.zip

    《网络游戏-网络应用程序管理器、方法、装置和移动终端》 网络游戏作为一种互动性强、娱乐性丰富的数字媒体形式,已经深入到人们的日常生活中。随着技术的发展,网络应用程序的管理、运行和优化变得越来越重要,...

    离线地图GIS设备远程监测方案.rar

    总的来说,离线地图GIS设备远程监测方案是一项结合了地理信息技术、程序开发和物联网应用的综合性解决方案。它不仅实现了地图的离线操作,还提供了设备的实时监控和管理功能,是提升工作效率和决策精度的重要工具。...

    js是否联网,实时联网监测

    在前端开发中,实时监测应用程序的网络连接状态是一项重要的任务,尤其对于依赖网络服务的应用来说。"js是否联网,实时联网监测"这个话题涉及到JavaScript如何检测浏览器当前的网络连接情况,并且实现对网络状态变化...

    PLC心跳 在线离线显示_判定labview与PLC的连接是否断开_plc心跳超时_心跳信号plc_plc心跳信号_plchea

    本文将详细解析"PLC心跳在线离线显示"这一主题,包括如何利用心跳信号来检测和判断LabVIEW与PLC的连接状态,以及处理心跳超时的情况。 **PLC心跳信号原理** PLC心跳信号是一种通信机制,它通过周期性地发送特定的...

    Arduino ESP32离线包.rar

    它拥有双核32位微处理器,最高工作频率可达240MHz,以及高达4MB的闪存和520KB的SRAM,使其能够处理复杂的任务和运行高级应用程序。 Arduino ESP32支持包是Arduino IDE为了使开发者能够利用ESP32的功能而提供的库和...

    C#监测网络连接状况的例子

    网络连接通常涉及到两种基本状态:在线(Online)和离线(Offline)。在Windows系统中,我们可以利用内置的`System.Net.NetworkInformation`命名空间中的类来获取这些信息。这个命名空间提供了多种网络信息类,如`...

    ios网络监测

    运行后,可以在模拟器或真机上看到网络状态的实时反馈,这对于学习如何在自己的应用中实现网络监测非常有帮助。 在实际开发中,结合Reachability或`NSNetworkReachabilityManager`,开发者还可以实现更高级的功能,...

    本机IP与网络状态监视程序

    总之,这个“本机IP与网络状态监视程序”是一个小巧实用的工具,利用VB的编程特性实现了对网络连接状态的实时监测和IP地址的显示,对于局域网用户来说具有很高的实用性。其背后涉及到的知识点包括VB编程、网络连接...

    IOS 网络监测

    在iOS开发中,网络监测是一项至关重要的任务,它关乎到应用程序的用户体验和功能的稳定性。本文将深入探讨如何在iOS平台上实现网络状态的实时监测,以及判断当前网络环境的方法。 首先,我们需要理解iOS中的网络...

    如果统计在线人数应用程序

    根据提供的文件信息,我们可以深入探讨如何在Web应用中实现在线用户人数统计这一功能。此功能在许多场景下都非常实用,比如在线教育平台、直播系统、社区论坛等,它可以帮助管理员实时了解系统的负载情况,同时也为...

    图片离线下载demo完美版20150311(免费)

    6. **网络状态检测**:应用需要实时监测网络状态,当网络恢复时,可以自动或手动继续未完成的下载任务。 7. **缓存策略**:为了优化内存使用,需要设定合理的缓存策略。例如,当存储空间有限时,可以按照优先级或...

    网络状态管理类

    在IT行业中,网络状态管理是应用程序开发中的一个重要环节,尤其是对于移动应用而言,因为它们需要实时监测和响应网络连接的变化。"网络状态管理类"通常指的是一个编程类,用于帮助开发者检测、处理和管理应用程序的...

    NetConnection 实现网络自动连接

    总的来说,"NetConnection 实现网络自动连接"这个项目通过VB实现了一个自动网络连接恢复工具,通过定时检查网络状态和配置文件管理,确保了连续的网络连接,这对于需要持续在线的业务场景具有很高的实用价值。

    基于OPC的矿井提升机监测数据通信系统.pdf

    2. OPC通信机制:OPC采用的是客户/服务器体系结构,通过网络技术实现数据的采集和控制,其特点是支持即插即用,允许不同厂商的设备和应用程序无缝集成,无需复杂的配置。 3. 矿井提升机监测:在煤矿生产中,矿井...

    Swift5.2 监视网络状态.zip

    在Swift编程中,监视网络状态是一项关键任务,特别是在开发依赖网络连接的应用程序时。Swift5.2版本提供了多种方法来检测和处理用户的网络状态变化,确保应用能够及时响应网络的可用性和状态变化。本文将详细讲解...

    C#.net判断网络状态

    ### C#.net 判断网络状态 在开发基于C#的应用程序时,经常需要检测用户的网络连接状态。...通过以上步骤,我们可以轻松地在C#.net应用程序中实现网络状态检测功能,从而为用户提供更好的用户体验。

    wangzilong.rar_visual c_监控程序_网络监控

    《Visual C++ 实现网络监控程序详解》 网络监控程序是现代信息技术中不可或缺的一部分,它可以帮助我们了解网络的运行状态,检测潜在的问题,优化网络性能。在这个领域,Visual C++ 作为一款强大的编程工具,凭借其...

Global site tag (gtag.js) - Google Analytics