基于Bmob云平台的消息推送系统设计与实现

2017-01-21 15:25汪静许欣王新年
软件导刊 2016年12期

汪静+许欣+王新年

摘 要:教育信息化促使校园建设不断完善,信息移动化正逐渐走进校园。为了提高高校信息化水平,方便重要活动信息与相关事项的通知,在深入进行需求分析的基础上,将Bmob云平台的消息推送机制与环信聊天的SDK整合。以中南民族大学为例,研究了校园移动平台客户端的设计与实现过程。该款Android校园APP基于Java语言开发完成,可实现短信、语音和文件发送,以及聊天、定位、消息回执等功能,并且已在设备上通过测试。

关键词:Bmob云平台;环信;Android;校园APP;消息推送

DOIDOI:10.11907/rjdk.162354

中图分类号:TP319

文献标识码:A文章编号:1672-7800(2016)012-0084-03

0 引言

随着移动互联网的蓬勃发展,移动终端的普及是必然趋势。如今手机的智能化程度越来越高,传输速度不断加快,手机的很多功能早已突破传统的功能应用。近年来,由于高校扩招,学院师生数量急剧膨胀。在大学生这一特殊群体中,Android智能机的使用率较高,因此基于Android手机的校园移动平台层出不穷[1]。在现今信息爆炸的时代,校园信息量日趋庞大,种类繁多的信息反而会让师生忽略重要事项的通知,增加了通知人员的工作量。基于Bmob云平台[2-3]的消息推送系统采用了基于Bmob云平台的消息推送机制,并整合了部分环信聊天SDK的功能。聊天功能主要由环信SDK实现,相关数据存储在Bmob服务器上,并采用Bmob提供的短信发送功能,给在一定时间内仍没有阅读通知的人员发送短信通知,保证重要事项通知到位。通知人员可随时掌握通知的送达率,从而提高工作效率。

1 系统设计与分析

利用手机实现校园重要事项通知到位,是系统设计的出发点。因此,基于该目的设计系统功能,以实时掌握校园里相关人员收到通知的进展。手机与服务器之间采用安全且流量较少的通讯方式。

1.1 软件架构

系统采用C/S结构,数据主要存储在服务器端。服务器端采用“Bmob+环信”的方式提供Web Service,Android手机端使用SQLite[6]缓存数据,与JavaAPI之间实现数据的上传和下载[7-8],手机的UI框架采用环信SDK的EaseUI实现,其基本软件架构如图1所示。1.2 设计概述

本系统采用面向对象的设计方法进行系统的设计与实现。系统的基本模块分工如图2所示,其中,包com.zhongnan.push包含了项目中的基本配置,包括Model数据中心和应用程序主入口,以及程序辅助类PushHelper;包com.zhongnan.push.adapter包含了项目中用到的所有适配器;包com.zhongnan.push.db包含了项目基本的数据库操作接口封装;包com.zhongnan.push.domain包含了网络消息体的封装;包com.zhongnan.push.parse包含了项目基本的数据解析操作;包com.zhongnan.push.receiver包含了项目的广播接收器;包com.zhongnan.push.runtimepermission包含了项目中的好友权限管理;包com.zhongnan.push.task包含了图片异步下载的接口封装;包com.zhongnan.push.ui包含了项目的所有界面(Activity);包com.zhongnan.push.utils包含了项目的工具类以及Bmob服务器的操作接口,包括短信、数据库操作接口的封装;包com.zhongnan.push.video.util包含了音视频处理接口的封装;包com.zhongnan.push.widget包含了项目中Activity用到的各种UI Widget。

系统的基本UI框架采用环信SDK的EaseUI加以实现。借助于环信的SDK实现系统的聊天功能,系统会在注册过程中将用户的基本信息存储于Bmob服务器,以便注册校验检测;用户的聊天记录信息会在Bmob服务器中存储相应的通知信息ID与群聊ID,以便系统进行短信通知。

1.3 功能设计

对用户的常用需求进行调研,设计相关软件功能。系统主要包含登录注册、聊天、发布通知等功能。

1.3.1 登录注册

用户登录时,如果没有账号则需在注册界面注册,注册的用户名以用户的手机号为准。在获取手机校验码后,最后客户端在环信的服务器上完成注册。具体的登录流程如图3所示。

1.3.2 通知发布

用户选择发布通知后,可进入发布通知界面编辑通知内容,然后选择是否在现有群聊中发送通知。然后,用户点击通知消息进入未读人员列表,向未读人员发送短信。每当群成员读取通知后,将该成员标示为已读对象。具体的发布通知流程如图4所示。

2 功能实现

2.1 登录界面

进入登录页面后,用户输入用户名和密码即可登录,密码校验成功则进入客户端主界面;如果没有账号则进入注册界面。

2.2 注册界面

用户注册要求输入手机号,并获取验证码。此时客户端向Bmob服务器获取验证码并发送至手机,用户输入验证码,同时客户端会在请求验证码之前向Bmob服务器查询该手机号是否已经注册。如果已注册,客户端会提示用户该号码已经注册;如果没有注册,用户输入验证码后,输入密码并选择注册的身份角色,通过客户端校验后,客户端会在环信的服务器上完成账号信息注册。

2.3 主界面

主界面默认选项为会话列表界面。用户可切换至通讯录和设置界面,所有的会话展示在会话列表界面,当用户点击会话时进入聊天界面。根据角色不同,界面和功能也有所差异,若登录的角色是教师,则主界面右上角有加号可用于发布通知。用户输入通知内容,然后选择发布对象,客户端会根据用户选择是否在现有群聊中发布通知,决定是否建立新群聊或添加新成员入群,然后发送通知。

2.4 发布通知界面

用户选择发布通知后,客户端向Bmob服务器存储当前的群聊ID与通知消息ID,将群主设置为已读人员。用户点击通知消息会进入未读人员列表,可在列表中自主选择需要发送短信的群成员对象,并发送短信。未读人员会收到来自Bmob服务器发送到指定主机的短信通知,在登录软件查看通知信息后,会同时向Bmob服务器的已读人员表中添加该成员,表示该成员为已读对象,直至未读人员列表为空,以确保每一位通知对象均已收到通知。

2.5 聊天界面

除发布通知功能外,聊天界面也具备其它基本功能,例如发送文件、表情、照片、语音、地理位置等,以方便用户传递信息,增加用户之间的交流。

2.6 通讯录界面

在通讯录界面,用户可查看好友申请,进行好友请求的接受和拒绝。同时用户可选择进入群聊列表界面,也可选择好友建立新的群聊。

2.7 设置界面

用户可设置系统的基本功能,修改用户资料,目前仅支持用户头像和昵称的修改,还可设置基本的消息接收提示,例如选择声音或震动,是否使用扬声器播放语音,以及退出群组时是否清除聊天数据等。目前所有聊天信息存储于本地的客户端数据库中。

3 结语

本文借助Android系统设计完成了一个基于Bmob云平台的消息推送校园APP,通知者可给在一段时间内仍未查看通知的未读人员手动发送短信,以保证重要事项通知到位,从而减轻传达人员的工作量,提高工作效率。系统设计的底层相对抽象,对类的封装比较彻底,相关功能直接在此基础上进行拓展。然而,系统的稳定性仍存在一定问题,由于系统的服务器都依赖于Bmob和环信服务器[9-10],而相关服务器目前尚不太稳定,可能存在用户无法登录的情况,这也是后期需要进一步优化与改进的方面。

参考文献:

[1] 刘宗平.浅析数字化校园建设中的移动校园平台建设[J].科技创新与应用,2013(14):83-83.

[2] 韩基龙.试谈Android移动云应用的优势和发展趋势[J].电脑编程技巧与维护,2014(6):58-59.

[3] 周冉,高玉竹.Bmob云平台在Android App开发中的应用[J].微型机与应用,2015,34(1):26-28.

[4] 倪红军.基于Android平台的消息推送研究与实现[J].实验室研究与探索,2014,33(5):96-100.

[5] 王晓萍,孟坤.基于可信第三方实现多云平台的交互和选择[J].计算机与现代化,2014(1):104-108.

[6] 刘昌平,范明珏,王光卫,等.Android 手机的轻量级访问控制[J]. 计算机应用研究,2010,27(7):2611-2613,2618.

[7] CHAUDHURI A. Language-based security on Android[C].The Workshop on Programming Languages & Analysis for Security,2009:1-7.

[8] 张国防,白晓波,孙超.基于Android的APP开发平台的搭建[J].通讯世界,2015(12):68-69.

[9] CORRAL L, SILLITTI A, SUCCI G. Mobile multiplatform development: an experiment for performance analysis[J]. Procedia Computer Science, 2012, 10(1):736-743.

[10] 刘欢,张增修,马晨辉.华东师范大学:混合开发移动应用[J].中国教育网络,2013(7):63-65.

(责任编辑:孙 娟)