软件设计开发
本栏目责任编辑:谢媛媛
自建IM 服务器的猿学习App 的设计与实现
梁振伟
(广东外语外贸大学南国商学院信息科学技术学院,广东广州510545)
摘要:IM 服务器就是一台独立运行的程序,接收用户发送给服务器的信息,并将其转发至其他用户,而目前国内的IM 服务
器一般都是由其他大厂进行派发,程序需要进行二次开发,用户相关信息放置在一个配置文件里,安全性相对较低。该文通过对编程教育类App 进行分析,分别从学生、老师的角度出发,寻合理有效的解决方案。并通过自建IM 服务器的方法,以此实现即时通信。关键词:即时通信;移动学习;编程教育中图分类号:TP311
文献标识码:A
文章编号:1009-3044(2020)36-0075-02
开放科学(资源服务)标识码(OSID ):
The Design and Implementation of Simian Learning App of Self-built IM Server LIANG Zhen-wei
(Institute of Information Science and Technology,South China Business College Guangdong University of Foreign Studies,Guang⁃zhou 510545,China)
Abstract:IM server is an independent running program that receives information sent by users to the server and forwards it to other users.At present,domestic IM servers are generally distributed by other large factories.The program needs secondary develop⁃ment,user-related information placed in a configuration file,relatively low security.By analyzing the App of programming educa⁃tion,this paper looks for reasonable and effective solutions from the perspective of students and teachers.And through the self-built IM server method,so as to achieve instant messaging.
Key words:Instant Messaging;mobile learning;programming education
1猿学习App 的研究
对于类似学习移动教育App 的设计,本系统对国内一些相关软件进行了系统分析。比如CSDN 的移动App 客户端,主要功能为热点资讯、资料查阅、博客查看、课程学习等相关功能。再如在线编程App ,实现了资讯、网页编程、学习资源、代码文档等功能。虽然目前这些App 的功能相对完善,但是服务的主要对象不是高校体,很显然其没有合理解决老师与学生的问题。在查看并分析了这些App 的不足后,本系统根据实际情况,为了处理这些遗留问题,在保留借鉴了一些功能的同时,针对性地开发了一些额外功能,以保证这些问题可以很好地解决。
1.1猿学习App 的需求分析
对于本App ,服务的对象主要分为两个,学生与老师。对
于学生而言,主要的问题是资源缺少、课程单一。对于老师而言,则是课程少,知识点多,复杂,无法短时间内保证学生完全掌握课堂知识。所以为了处理这些问题,本系统主要设置了聊天室、好友添加、视频播放、资讯信息等相关功能进行处理,老师可以在聊天室与学生进行交流,及时了解学生课堂上的疑点、难点,帮助学生及时答疑。而好友功能的设置则是为了帮助用户间的相互交流学习,视频观看可以让用户在线观看学习
资源,提高知识水平。热点资讯让用户第一时间了解计算机最新发展。学习资源包括软考资料、经验总结、基础教程等,帮助学生根据自己需求进行针对性的学习。1.2猿学习App 模块层次结构
本系统的层次结构,按照功能进行分析,可以大致分为客户端、服务器、数据库、浏览器。具体如图1所示。
图1系统的层次结构
服务器上,主要使用了Tomcat 服务器,Openfire 服务器等,对于Tomcat 服务器而言,采用Java 经典三层架构(Web ,Dao ,Service )进行开发,Dao 用于数据库的一系列操作,Service 负责
收稿日期:2020-10-28
基金项目:2019年广东省大学生创新训练项目(S201912620018)作者简介:梁振伟(1998—),男,广东人,2016级计算机科学与技术专业。
75
本栏目责任编辑:谢媛媛
软件设计开发Computer Knowledge and Technology 电脑知识与技术第16卷第36期(2020年12月)
处理业务层,Web 负责后台数据的接收、修改。对于Openfire 服务器而言,则是使用Spark ,Smack 相结合的方式实现聊天相关功能,Spark 服务于管理员,方便管理员对其他账号的管理,以及聊天室的监听查看,Smack 与Android 客户端结合,负责接收Openfire 服务器的数据,以及聊天信息的发送。
在客户端上,主要的Android 客户端使用Xutils ,Gson ,ijk⁃player ,Smack ,ShareSDK 这类第三方库,Xutils 负责客户端数据的发送,传输以及服务器的数据获取。Gson 负责服务器数据的解析。Ijkplayer 负责视频的播放,Smack 负责向Openfire 服务器进行XML 数据发送、接收,以此实现聊天相关的操作。除此之外,我们还使用了SharedPreferences 、SQLite 进行用户数据的保存以及聊天记录的保存。ShareSDK 负责分享功能的实现。
数据库上,本系统使用了Mysql 、SQLite 数据库。Mysql 用于服务器上存储用户好友信息,用户账号密码等数据。SQLIte 则是保存本地用户信息,聊天历史等服务。
浏览器上使用Summer Note ,jQuery 等库实现。Summer Note 负责发布教程等需要用到网页编辑的功能,jQuery 负责广告轮播、Ajax (异步加载)等功能实现。1.3猿学习App 的功能实现
对于本系统而言,主要实现的功能有:,好友功能,聊天室,视频观看,热点资讯,学习资源,在线测试等。对于、聊天室,本系统在服务器上额外搭建一个Openfire 服务器进行聊天实现。用户发送的信息将会被Openfire 服务器接收,并根据类型进行转发给其他用户。视频观看,则是从服务器上获取数据,之后根据用户点击的URL ,发送请求,让服务器返回资源给客户端,最后使用Android 第三方插件Ijkplayer 进行视频的播放。热点资讯、学习资源这两个功能的主要原理都是从服务器发送请求,服务器在返回json 类型的数据给Android 客户端,客户端使用Gson 插件进行json 解析,在渲染页面给用户展示。在线测试则是根据用户所选题目类型,进行随机题目选取,根据用户所选结果进行分析,给出合理的信息解答。
2IM 服务器
在目前主流IM 服务器的选择上,主要是由腾讯云、阿里
云、网易云等大的运营商进行提供,对于开发者而言,不仅需要额外去运营商网站上进行文件配置,获取key 密钥,而且还需要自己设计加密方式对信息进行额外加密、保存。除此之外,黑客在对程序进行反编译的时候,可能会根据key 密钥信息将数据进行修改、盗取,存在一定的安全隐患。而为了解决这一问题,通过查阅大量资料后,了解,发现自建IM 服务器其实可以有一定的可行性。自建的IM 服务器,用户信息保存在服务器上,而且对用户信息进行了多次加密。所以独立开发一台IM 服务器实现即时通信,较好地保护用户信息安全,不失为一种可行的方式。2.1IM 服务器的搭建
对于自建IM 服务器,本系统选择的是Apache 公司下的
Opnefire 服务器,用其进行IM 开发。Opnefire 服务器遵循了XMPP 协议,数据在传输时使用的是XML 的形式,灵活,方便。除此之外,由于其继承了XML 的特点,所以在传输信息上也是可以的,特别是发送扩展信息,解析,处理客户端请求上有着更好的效率。而如何搭建一个Opnefire 服务器,主要分为以下几步:
首先,是搭建Opnefire 服务器运行的环境。Opnefire 服务
器主要使用Java 作为运行环境,Mysql 作为数据库。所以要下载Java 、Mysql 的安装包,配置Java 环境变量,设置Mysql 监听端口。之后去Apache 下载对应版本的Opnefire 运行文件,打开运行,设置端口号,配置Mysql 位置,以及密钥信息,最后根据实际情况,去客户端导入相关实现依赖文件
或者下载相关运行文件即可。
2.2自建IM 服务器的安全性分析
对于自建IM 服务器,可以与传统运营商的IM 服务器都进
行一次假设。对于自建IM 服务器而言,黑客通过反编译破解了程序,获取了key 密钥信息,其也只可以通过密钥信息查询到加密了的信息。如果想要对信息进行查看,需要额外进行解密操作,由于服务器对于信息加密次数过多,黑客很难获取到真实的信息。再者,黑客如果真的拿到了key 密钥,伪装成开发者登录Opnefire 服务器,也需要额外进行一次登录远程服务器。而对于传统运营商的IM 服务器,黑客获取了key 密钥后,通过密钥查询到加密后的信息。但是只要伪装成开发者,运营商为了方便开发者,不需要额外操作,就会将加密信息自动进行解密展示。所以从这个角度出发,自建IM 服务器的安全性相对较高,用户信息可以很好地被保护。2.3自建IM 服务器的应用
对于自建IM 服务器的应用,以Openfire 为例,一般分为三种情况,一种是PC 端使用,一种是网页浏览器使用,最后是移动应用的使用。对于PC 端而言,进行即时通讯,需要结合Spark 使用,安装Spark 客户端之后,只需要填入IP 信息、用户名、密码即可登录使用,就如PC 上的QQ 软件一样,使用方便、快捷。网页浏览器上,则是把用户发送的信息先转换为XML 的形式,再使用key 密钥,将信息发送给服务器接收,服务器再把信息转发至其他用户。移动应用则是导入Smack 的相关依赖,通过
Smack 内部的方法,连接Openfire 服务器,之后使用HTTP 将信息发送给服务器接收即可。对于开发者而言,操作简单、方便、快捷,而且使用方式多样。
3总结
在目前移动应用飞速发展的大环境下,移动服务将会成为未来发展的一种趋势,开发一个面向高校学生体的学习类App ,为学生、老师提供一个学习交流的平台,也不失为一种合理的尝试。而自建IM 服务器也将会成为一种发展趋势,越来越多的企业、开发者为了开发便利、安全性的考虑会自建相关的IM 服务器。而IM 服务器的种类也会更加多样,功能安全性也会更高。
参考文献:
[1]梁莎.App 界面设计课程的探索与思考[J].高教学刊,2015(14):73-74.
[2]胡晓辉.基于Android 的C 语言学习App 开发研究[J].电脑知识与技术,2019,15(22):82-83,86.
jquery学习在线教程[3]于潇东.移动学习App 在国家开放大学教育中的应用[J].内蒙古电大学刊,2019(2):106-108,113.
[4]张天祥,郝凯东,徐志良.基于Android 系统下的夜跑App[J].电子测试,2019(2):89-90,88.
【通联编辑:代影】
76

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。