基于Android的局域网即时通讯工具
- 格式:pdf
- 大小:1.70 MB
- 文档页数:4
2019年软 件2019, V ol. 40, No. 2作者简介: 张哲(1993-),女,研究生,主要研究方向:信号与信息处理;汪毓铎(1960-),男,教授,主要研究方向:信号与信息处理。
基于Android 的局域网即时通讯工具张 哲,汪毓铎(北京信息科技大学 信息与通信工程学院,北京 100101)摘 要: 针对目前大部分通讯软件使用公共数据库,可能会存在用户信息泄露、通讯内容数据泄露等安全性问题,在局域网基础上建立私有数据库,开发基于Android 的局域网即时通讯工具。
该工具相当于一个“简易版飞鸽传书”,该程序可实现注册、登陆,修改密码、修改头像、添加好友、删除好友等功能,同时可完成在局域网内收发文字信息、语音信息、表情信息、图片信息和定位信息的功能。
基于局域网即时通讯既保证了通讯的实时性,又保障了通讯的安全性。
关键词: 局域网;即时通讯;Android 应用;聊天工具中图分类号: TP391.1 文献标识码: A DOI :10.3969/j.issn.1003-6970.2019.02.033本文著录格式:张哲,汪毓铎. 基于Android 的局域网即时通讯工具[J]. 软件,2019,40(2):169-172LAN Instant Messaging Tool Based on AndroidZHANG Zhe, WANG Yu-duo(School of Information and Communication Engineering, Beijing Information Science and Technology University, Beijing 100101, China )【Abstract 】: In view of the security problems such as user information leakage and communication content data leakage in most communication software using public databases, a private database based on LAN is established and an Android-based local area network instant messaging tool is developed. The tool is equivalent to a "simple version of flying pigeon biography". The program can register, log in, modify password, change head image, add friends, delete friends and other functions. At the same time, it can complete the functions of sending and receiving text in-formation, voice information, expression information, picture information and location information in the LAN. In-stant messaging based on LAN not only guarantees the real-time communication, but also guarantees the security of communication.【Key words 】: LAN; Instant messaging; Android application; Chat applications0 引言移动通信集成互联网的快速发展,使无线网络的高速上网接入成为可能。
用户可以随时随地享受网络服务。
消息的实时传递需要使用因特网协议,该协议实现不同设备的不同用户之间的实时通信。
随着智能设备的普及使得即时通讯服务可以更好的移植到移动设备上。
目前,开源的Android 系统[1-2]吸引了大量的移动终端厂商,着手研发具有自己特色的Android 应用与服务[3-13]。
目前移动设备的通信应用越来越广泛,市场 上存在许多方便快捷的即时通信软件,如微信、QQ 等[9-11]。
李静波利用基于负载均衡的即时通信作为一种新型的通信手段,通过计算机仿真及相关算法,建立完美的均衡技术体系,能够提高实时响应能力,对于服务器出现的负载过重的情况予以消除[12]。
吉毅等人利用Android 系统应用程序作为研究对象,分析中国主流聊天软件实施过程,使用Xposed 框架调整和修改心跳接口,给出针对即时通信应用的节能应用[13]。
目前,基于数据安全角度考虑,开发设计一款移动端基于局域网的即时通讯工具软件是非常有意义和有必要的。
1 总体设计1.1 系统整体设计即时通讯系统将网络作为必要条件,与其他用户间实行实时的信息交互。
因其方便快捷的显著优点,具有很高的商业价值和服务市场。
无线传输网第40卷 第2期 软 件170《软件》杂志欢迎推荐投稿:cosoft@络的发展使得即时通讯工具由电脑PC 端转移到智能移动设备上,即时通讯工具的研究得到科研人员与设备厂商的青睐,成为移动业务的新亮点。
基于Android 的局域网即时通讯工具的主体功能是局域网内的即时通信,系统总体设计分为用户操作模块、会话操作模块、好友管理模块和系统设置模块四部分。
系统功能结构如图1所示。
即时通讯工具用户操作模块会话操作模块好友管理模块系统设置模块图1 系统总体设计Fig.1 Overall system design1.2 系统软件设计 1.2.1 用户操作模块用户操作模块主要是包含两个功能:用户登录和用户注册。
用户打开软件默认进入登录界面,如图2左图所示。
在登录模块中用户输入用户名和密码,正确则进入系统;错误则弹出提示消息显示用户名不存在或密码错误。
用户注册模块主要实现新用户的注册,界面如图2右图所示。
图2 登录页面(左)和注册页面(右)Fig.2 Login page (left) and Registration page (right)1.2.2 会话操作模块会话操作模块主要是处理用户间的即时通讯消息,如图3所示,包括文本消息、语音消息、表情消息以及地图消息四类。
会话操作,可以是单聊,也可以是群聊。
文本消息语音消息地图消息表情消息会话操作模块图3 会话操作模块Fig.3 Session operation module(1)文本消息的发送① 创建消息实体:TextMessage textMessage = new TextMessage (entity); ② 设置消息状态与类型:textMessage.setStatus (MessageConstant.MSG_ SUCCESS);textMessage.setDisplayType (DBConstant.SHOW_ ORIGIN_TEXT_TYPE);③获取消息发送与接收的人员信息:loginUser = imService.getLoginManager().get-LoginInfo();peerEntity = imService.getSessionManager(). findPeerEntity (currentSessionKey);④消息内容:String content = Emoparser.getInstance (Mes-sageActivity.this).getSelfIdPhraseMap().get(resId);⑤发送文本消息:TextMessage textMessage = TextMessage.build-ForSend(content, loginUser, peerEntity);imService.getMessageManager().sendText(text-Message);pushList(textMessage); scrollToBottomListItem(); (2)图片消息的发送与文本消息发送流程不同的是,图片消息需要先将图片发送到服务器端,接收服务器返回的图片地址发送过程中传输的是图片地址。
参数使用“DBConstant.SHOW_ORIGIN_IMAGE_TYPE ”。
在发送消息时调用“ImageMessage imageMessage =ImageMessage.buildForSend(takePhotoSavePath, loginUser, peerEntity);); ”。
(3)语音消息的发送与文本、图片相似,但发送语音时使用“DBConstant.SHOW_ORIGIN_AUDIO_TYPE ”。
发送时调用“AudioMessage audioMessage = Audi-oMessage.buildForSend(audioLen, audioSavePath, loginUser, peerEntity); ”。
(4)地图消息的发送地图消息为一条文本消息加一条图片消息。
发送过程调用图片和文本发送。
张 哲等:基于Android 的局域网即时通讯工具171 《软件》杂志欢迎推荐投稿:cosoft@(5)接收消息当服务器接收到消息后,首先根据参数判断来源与去向。
根据peerEntity 向消息的接收人推送消息。
若消息发送成功,则服务器向消息双方发送成功提醒。
反之,则向消息发起人发送失败提醒。
1.2.3 好友管理模块(1)获取好友列表好友列表存储在服务器的数据库中,也在本地有缓存列表,获取好友列表可以通过:IMBaseDefine. UserInfo userInfo=imSearchUserRes.getUserListList(). get(0);(2)添加好友IMContactManager.getInstance().addFriend(loginId, peerId);(3)删除好友IMContactManager.getInstance().deleteFriend (loginId, peerId);(4)同意好友请求IMContactManager.getInstance().acceptFriend (loginId, peerId);(5)拒绝好友请求IMContactManager.getInstance().refuseFriend (loginId, peerId); 1.2.4 系统设置模块系统设置模块主要功能有系统设置、钱包、收藏、清除图片缓存、退出等,界面如图4所示。