APP下载

基于Android移动设备的雷电预警实时推送技术

2017-03-27吴安坤

中低纬山地气象 2017年1期
关键词:监听雷电客户端

丁 旻,张 淼,吴安坤

(1.贵州省气象灾害防御技术中心,贵州 贵阳 550081;2.贵州省农村综合经济信息中心,贵州 贵阳 550081)

基于Android移动设备的雷电预警实时推送技术

丁 旻1,张 淼2,吴安坤1

(1.贵州省气象灾害防御技术中心,贵州 贵阳 550081;2.贵州省农村综合经济信息中心,贵州 贵阳 550081)

基于Android移动设备的雷电预警信息实时推送,不仅能满足雷电预警信息发送的及时性而且可提高预警区域的精度。因此,开展推送技术的研究具有重要的实用意义和发展前景。基于Android移动设备,利用GPS定位技术,对雷电预警信息、三维闪电监测数据进行采集,通过GPS位置数据与预警信息整合、数据格式转换、服务器和客户端XMPP协议配置以及数据初始化等过程,实现雷电预警信息的及时准确推送。用户能够及时获取所在行政区雷电预警发布信息以及附近20 km内的雷电实时发生情况,提醒做好相应预警等级的雷电预防措施。

Android移动设备;实时推送;雷电预警;GPS定位技术;XMPP协议

1 引言

基于移动设备的即时通讯技术,具备了很好的及时性和直观性,现在已不再是被单纯运用在简单的对话通信服务中。在雷电灾害防御服务中,将身边的雷电预警和闪电监测实时信息结合GPS定位技术以即时通讯的方式直接发送到雷电预警区域范围内的客户端,雷电预警产品以一种邮件订阅的方式推送在客户端的信息栏显示,当用户所在行政区发布雷电预警信息以及附近20 km内发生雷电时,用户可以随时通过可视化的方式掌握雷电预警信息及闪电实时发生情况,以便及时做好相应的雷电防御措施,达到防灾减灾的目的。这种模式和技术是雷电灾害公共服务功能的一个完善。因此,基于Android移动设备的雷电预警信息的及时推送技术具有很好的实用价值和发展前景。本文详细介绍了围绕该技术的研究过程。

2 功能结构设计

本功能设计研究以C/S为整体结构体系,客户端通过GPRS无线网络用TCP协议连接到服务器,服务器采用开源的Openfire作为实时推送平台,推送功能使用开放的XMPP即时通信协议。具体结构设计有如下几个部分:

一是XMPP协议设计[1]。这是一个开放的且节约开发成本的推送信息协议,主要是实现各个服务器、客户端间的连接。Smack是XMPP协议实现的关键,操作XMPP都是通过使用其提供的API来实现的。

二是服务器配置。本功能服务器(以下简称服务器)端采用Openfire作为服务器[2]。允许多个客户端同时连接和登录服务器。服务器对每个客户端的连接进行认证,对认证通过的客户端创建会话,所有客户端与服务器端之间的通信都在该会话的上下文中进行。该服务器除连接客户端还负责采集雷电监测实时数据、雷电预警信息以及数据集成处理。

三是客户终端设计。客户端通过GPRS无线网络与Internet网络建立连接,在设计中,把客户端推送分为两类内容:一类为雷电预警信息,服务器通过Internet网络读取雷电预警信息数据;另一类为临近闪电监测实时信息,服务器直接读取本地雷电服务器数据。服务器通过Message[3]的from参数来控制消息的来源。

具体功能设计如图1。

图1 功能设计结构图Fig.1 The function design structure design

3 功能技术实现

3.1 服务器功能设计实现

本功能服务器负责实时推送数据处理、闪电监测实时数据格式处理和雷电预警信息读取,通过采用XMPP协议,安装OpenFire实现实时推送功能。闪电监测服务器收集和存储全省闪电监测数据。两台服务器同属一个内网段,因此本功能服务器使用Java自带的JDBC数据库[4]程序直接远程登录闪电监测服务器,获取闪电监测实时数据。

在获取闪电监测数据和客户端GPS位置数据后,将这两类数据按技术要求集成存储,是实现推送功能的关键。临近闪电监测实时信息推送,利用GPS技术[5]推送客户端附近20 km以内的闪电实时情况,通过程序遍历每条闪电数据的经纬度,获取闪电发生的位置数据集后,分别与GPS定位数据的经纬度进行比较。本功能分别按闪电发生位置距离客户端GPS定位1、3、5、10和20 km进行分类,并将分类数据提交给功能服务器进行分类处理、存储。雷电预警信息推送直接通过客户端GPS定位精确自动读取所在行政区域气象台发布的雷电预警信息,并利用XMPP协议中的监听程序及时推送(技术内容在XMPP协议中详述)。整个过程通过输出程序system.out.println("时间:"+location.getTime());system.out.println("经度:"+location.getLongitude());system.out.println("纬度:"+location. Latitude ())输出位置数据经纬度,在接入气象数据API的过程中,将位置数据初始化为该经纬度,功能实现见图2。

3.2 XMPP协议实现

XMPP协议是连接服务器和客户端的纽带,二者在该协议上分别配置,并完成数据和功能的交互。服务器配置采用了基于XMPP的OpenFire,其由Java编程语言开发[2];客户端配置使用Smack客户端库。实现功能设计关键在于服务器数据流处理,XMPP协议采用XML数据流格式[3],每个XML流有3个基本单元:。本功能设计主要利用的关键数据节为,它用于实现服务器和客户端之间发送信息,基本格式为,在from字段上配置本功能服务器的地址,在to字段配置广播地址,服务器端协议即完成配置。

图2 雷电预警和附近雷电信息即时推送功能Fig.2 Lightning warning and the nearby thunder lightning information instant pushed

3.3 客户端功能设计实现

客户端通过TCP连接连接到服务器,并根据XMPP协议配置获得由服务器所提供的全部功能,即客户端只用接收消息,而所有相关操作都由服务器处理。在XMPP协议中有一个用java开发客户端库Smack,该库提供了两种不同的连接方式[1-3]:socket和httpclient。本文仅选取socket作为客户端连接服务器的方式来描述。首先,通过socket中的connection 函数与服务器进行连接connection= new XMPPConnection(),在XMPPConnection构造函数里面主要配置IP地址和端口。同时,注册一个监听connection.addPacketListener(packetListener, packetFilter); connection.connect(),通过初始化连接,即可建立socket对象。然后,建立PacketReader对象packetReader = new PacketReader(this);,PacketReader主要负责消息的处理和通知。接着调用resetParser() 方法,为parser设置输入源,该输入源即为服务器上的闪电监测实时数据和雷电预警信息。最后,调用startup启动线程,循环监听parser,如果功能服务器推送信息,监听程序接收到消息后会调用parseMessage()方法。该方法主要处理message的消息,通过该方法分析message消息并返回packet包。返回的包将调用processPacket方法,通过processPacket方法本功能服务器发出的信息会被传递给所有注册了PacketListener的监听(即与本功能服务器建立socket连接)的客户端。为满足用户自主选择需求,在调用startup的过程中应用程序调用开关[1]、[7-8],分别控制对闪电监测实时数据和雷电预警信息的监听。用户开启开关,则线程启动,监听程序运行,信息功能立即被推送;当用户关闭开关,则线程不被启动,监听程序不运行,信息将不会被推送,操作界面见图3。

图3 雷电信息即时推送设置功能Fig.3 The function of lightning information push setting

4 结语

本文以Android移动客户端为基础,描述了通过XMPP协议实现及时推送用户周边的闪电监测实时信息和雷电预警信息所采取的技术方法及过程。在技术研究和功能实现过程中,以简洁实用的方法和符合用户体验为前提进行开发,满足了临近雷电预警服务向移动客户端发展的需求,是对气象公共服务能力的完善,有助于用户及时接收雷电预警信息,了解闪电实时发生情况,以便及时做好相应的雷电防御措施,减少雷电导致的人员和财产损失。

[1] 莫非特(Jack Moffitt), XMPP高级编程:使用Java Script和jquery[M].北京:清华大学出版社, 2011.

[2] 何以亮.openfire教程网[OL]. http://myopenfire.com/.2015.

[3] 崔同亮.通过XMPP协议实现即时通讯介绍[J].开源中国社区,2014.

[4] Cay S.Horstmann(美).Java 核心技术[M].北京:机械工业出版社,2014.

[5] 李明峰,冯宝红,刘三枝. GPS定位技术及其应用[M].北京:国防工业出版社,2006.

[6] 林念萍,郑海祥,朱少玲,等.闪电定位资料在防雷设计中的应用研究[J].建筑电气,2014.

[7] 崔栋梁,冯亚,于万荣.气象服务产品自动处理平台[J].计算机系统应用,2015,24(2):240-243.

The real-time push technology of the lightning early warningbased on the Android mobile equipment

DING Min1,ZHANG Miao2,WU Ankun1

(1.Meteorological Disasters Defense Technology Center of Guizhou Province, Guiyang 550081, China;2.Rural Comprehensive Economic Information Center of Guizhou Province , Guiyang 550081, China)

The thunder precaution information real-time push movement based on the Android mobility device can not only satisfy the timeliness of the thunder precaution information, but also improve the accuracy of the precaution area. Therefore, the research of carrying out the push technology has the significant practical meanings and developmental visions. The thunder precaution information and three-dimensional lightning monitoring data are to be gathered based on Android mobility device and by utilising GPS location technology. The timely and accurate push of the thunder precaution information will be realized through the process of the integration of GPS location data and precaution information,the transformation of the data format, the allocation of the sever and XMPP agreement of the customer end. The users are able to obtain the thunder precaution release information within the district and the thunder real-time occurrence situation within nearby 20 km. The thunder precaution measures of the corresponding precaution levels can be reminded to do better.

Android mobility device; the real-time push; the thunder precaution; the push technology; GPS location technology; XMPP agreement

1003-6598(2017)01-0078-03

2016-09-08

丁旻(1984—),男,副高,主要从事气象灾害防御工作,E-mail:272339087@qq.com。

贵州省气象局攻关小组:防雷减公共气象服务APP。

TN926

B

猜你喜欢

监听雷电客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
雨天防雷电要选对雨伞
英国风真无线监听耳机新贵 Cambridge Audio(剑桥)Melomania Touch
千元监听风格Hi-Fi箱新选择 Summer audio A-401
如何看待传统媒体新闻客户端的“断舍离”?
雷电
网络监听的防范措施
计算机机房的雷电防护
应召反潜时无人机监听航路的规划