APP下载

自建IM服务器的猿学习App的设计与实现

2020-02-22梁振伟

电脑知识与技术 2020年36期
关键词:移动学习

梁振伟

摘要:IM服务器就是一台独立运行的程序,接收用户发送给服务器的信息,并将其转发至其他用户,而目前国内的IM服务器一般都是由其他大厂进行派发,程序需要进行二次开发,用户相关信息放置在一个配置文件里,安全性相对较低。该文通过对编程教育类App进行分析,分别从学生、老师的角度出发,寻找合理有效的解决方案。并通过自建IM服务器的方法,以此实现即时通信。

关键词:即时通信;移动学习;编程教育

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2020)36-0075-02

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 development, user-related information placed in a configuration file, relatively low security. By analyzing the App of programming education, 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所示。

服务器上,主要使用了Tomcat服务器,Openfire服务器等,对于Tomcat服务器而言,采用Java经典三层架构(Web,Dao,Service)进行开发,Dao用于数据库的一系列操作,Service负责处理业务层,Web负责后台数据的接收、修改。对于Openfire服务器而言,则是使用Spark,Smack相结合的方式实现聊天相关功能,Spark服务于管理员,方便管理员对其他账号的管理,以及聊天室的监听查看,Smack與Android客户端结合,负责接收Openfire服务器的数据,以及聊天信息的发送。

在客户端上,主要的Android客户端使用Xutils,Gson,ijkplayer,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解析,在渲染页面给用户展示。在线测试则是根据用户所选题目类型,进行随机题目选取,根据用户所选结果进行分析,给出合理的信息解答。

2 IM服务器

在目前主流IM服务器的选择上,主要是由腾讯云、阿里云、网易云等大的运营商进行提供,对于开发者而言,不仅需要额外去運营商网站上进行文件配置,获取key密钥,而且还需要自己设计加密方式对信息进行额外加密、保存。除此之外,黑客在对程序进行反编译的时候,可能会根据key密钥信息将数据进行修改、盗取,存在一定的安全隐患。而为了解决这一问题,通过查阅大量资料后,了解,发现自建IM服务器其实可以有一定的可行性。自建的IM服务器,用户信息保存在服务器上,而且对用户信息进行了多次加密。所以独立开发一台IM服务器实现即时通信,较好地保护用户信息安全,不失为一种可行的方式。

2.1 IM服务器的搭建

对于自建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.

[3] 于潇东.移动学习App在国家开放大学教育中的应用[J].内蒙古电大学刊,2019(2):106-108,113.

[4] 张天祥,郝凯东,徐志良.基于Android系统下的夜跑App[J].电子测试,2019(2):89-90,88.

【通联编辑:代影】

猜你喜欢

移动学习
高职院校普及移动学习的策略研究
试析融合移动学习下的大学英语教学新模式
大学生移动学习模式分析
基于智能手机的高职学生移动学习需求分析研究
智能手机APP支持下的大学英语听力教学