admin管理员组

文章数量:1539079

2024年5月9日发(作者:)

ISSN1009-3044

ComputerKnowledgeandTechnology

第16卷第36期(2020年12月)

电脑知识

与技术

Vol.16,No.36,

December.

2020

E-mail:*************.cn

ComputerKnowledgeandTechnology

电脑知识

与技术

http://

Tel:+86-551-6569

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

梁振伟

(广东外语外贸大学南国商学院信息科学技术学院,广东广州510545)

摘要:IM服务器就是一台独立运行的程序,接收用户发送给服务器的信息,并将其转发至其他用户,而目前国内的IM服务

器一般都是由其他大厂进行派发,程序需要进行二次开发,用户相关信息放置在一个配置文件里,安全性相对较低。该文

通过对编程教育类App进行分析,分别从学生、老师的角度出发,寻找合理有效的解决方案。并通过自建IM服务器的方

法,以此实现即时通信。

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

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

开放科学(资源服务)标识码(OSID):

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

TheDesignandImplementationofSimianLearningAppofSelf-builtIMServer

LIANGZhen-wei

(InstituteofInformationScienceandTechnology,SouthChinaBusinessCollegeGuangdongUniversityofForeignStudies,Guang⁃

zhou510545,China)

Abstract:IMserverisanindependentrunningprogramthatreceivesinformationsentbyuserstotheserverandforwardsittoother

ent,gramneedssecondarydevelop⁃

ment,user-relatedinformationplacedinaconfigurationfile,yzingtheAppofprogrammingeduca⁃

tion,thispaperlooksforreasonaoughtheself-

builtIMservermethod,soastoachieveinstantmessaging.

Keywords:InstantMessaging;mobilelearning;programmingeducation

1猿学习App的研究

对于类似学习移动教育App的设计,本系统对国内一些相

关软件进行了系统分析。比如CSDN的移动App客户端,主要

功能为热点资讯、资料查阅、博客查看、课程学习等相关功能。

再如在线编程App,实现了资讯、网页编程、学习资源、代码文

档等功能。虽然目前这些App的功能相对完善,但是服务的主

要对象不是高校群体,很显然其没有合理解决老师与学生的问

题。在查看并分析了这些App的不足后,本系统根据实际情

况,为了处理这些遗留问题,在保留借鉴了一些功能的同时,针

对性地开发了一些额外功能,以保证这些问题可以很好地

解决。

1.1猿学习App的需求分析

资源,提高知识水平。热点资讯让用户第一时间了解计算机最

新发展。学习资源包括软考资料、经验总结、基础教程等,帮助

学生根据自己需求进行针对性的学习。

1.2猿学习App模块层次结构

本系统的层次结构,按照功能进行分析,可以大致分为客

户端、服务器、数据库、浏览器。具体如图1所示。

对于本App,服务的对象主要分为两个,学生与老师。对

于学生而言,主要的问题是资源缺少、课程单一。对于老师而

言,则是课程少,知识点多,复杂,无法短时间内保证学生完全

掌握课堂知识。所以为了处理这些问题,本系统主要设置了聊

天室、好友添加、视频播放、资讯信息等相关功能进行处理,老

师可以在聊天室与学生进行交流,及时了解学生课堂上的疑

点、难点,帮助学生及时答疑。而好友功能的设置则是为了帮

助用户间的相互交流学习,视频观看可以让用户在线观看学习

图1系统的层次结构

服务器上,主要使用了Tomcat服务器,Openfire服务器等,

对于Tomcat服务器而言,采用Java经典三层架构(Web,Dao,

Service)进行开发,Dao用于数据库的一系列操作,Service负责

收稿日期:2020-10-28

基金项目:2019年广东省大学生创新训练项目(S2)

作者简介:梁振伟(1998—),男,广东人,2016级计算机科学与技术专业。

本栏目责任编辑:谢媛媛

软件设计开发

75

ComputerKnowledgeandTechnology

电脑知识

与技术

处理业务层,Web负责后台数据的接收、修改。对于Openfire服

务器而言,则是使用Spark,Smack相结合的方式实现聊天相关

功能,Spark服务于管理员,方便管理员对其他账号的管理,以

及聊天室的监听查看,

Openfire服务器的数据,

Smack与Android客户端结合,负责接收

player

在客户端上,

的发送,

,Smack

传输以及服务器的数据获取。

,ShareSDK

主要的

以及聊天信息的发送。

这类第三方库,

Android客户端使用Xutils,Gson,ijk⁃

Gson

Xutils

负责服务器数据的

负责客户端数据

解析。Ijkplayer负责视频的播放,Smack负责向Openfire服务器

进行XML数据发送、接收,以此实现聊天相关的操作。除此之

外,我们还使用了SharedPreferences、SQLite进行用户数据的保

存以及聊天记录的保存。ShareSDK负责分享功能的实现。

数据库上,本系统使用了Mysql、SQLite数据库。Mysql用

于服务器上存储用户好友信息,用户账号密码等数据。SQLIte

则是保存本地用户信息,聊天历史等服务。

Note

浏览器上使用SummerNote,jQuery等库实现。

告轮播、

负责发布教程等需要用到网页编辑的功能,

Ajax(异步加载)等功能实现。

jQuery

Summer

负责广

1.3猿学习App的功能实现

对于本系统而言,主要实现的功能有:在线聊天,好友功

能,聊天室,视频观看,热点资讯,学习资源,在线测试等。对于

在线聊天、聊天室,本系统在服务器上额外搭建一个Openfire服

务器进行聊天实现。用户发送的信息将会被Openfire服务器接

收,并根据类型进行转发给其他用户。视频观看,则是从服务

器上获取数据,之后根据用户点击的URL,发送请求,让服务器

返回资源给客户端,最后使用Android第三方插件Ijkplayer进

行视频的播放。热点资讯、学习资源这两个功能的主要原理都

是从服务器发送请求,服务器在返回json类型的数据给Android

客户端,客户端使用Gson插件进行json解析,在渲染页面给用

户展示。在线测试则是根据用户所选题目类型,进行随机题目

选取,根据用户所选结果进行分析,给出合理的信息解答。

2IM服务器

在目前主流IM服务器的选择上,主要是由腾讯云、阿里

云、网易云等大的运营商进行提供,对于开发者而言,不仅需要

额外去运营商网站上进行文件配置,获取key密钥,而且还需要

自己设计加密方式对信息进行额外加密、保存。除此之外,黑

客在对程序进行反编译的时候,可能会根据key密钥信息将数

据进行修改、盗取,存在一定的安全隐患。而为了解决这一问

题,通过查阅大量资料后,了解,发现自建IM服务器其实可以

有一定的可行性。自建的IM服务器,用户信息保存在服务器

上,而且对用户信息进行了多次加密。所以独立开发一台IM

服务器实现即时通信,较好地保护用户信息安全,不失为一种

可行的方式。

2.1IM服务器的搭建

Opnefire

对于自建IM服务器,本系统选择的是

XMPP

除此之外,

协议,

服务器,

由于其继承了

数据在传输时使用的是

用其进行IM开发。

XML的特点,

XML

Opnefire

Apache公司下的

所以在传输信息上也是

的形式,

服务器遵循了

灵活,方便。

可以的,特别是发送扩展信息,解析,处理客户端请求上有着更

好的效率。而如何搭建一个Opnefire服务器,主要分为以下

几步:

76

软件设计开发

第16卷第36期(2020年12月)

首先,是搭建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端使用,一种是网页浏览器使用,最后是移

动应用的使用。对于

Spark

PC端而言,进行即时通讯,需要结合

名、密码即可登录使用,

使用,安装Spark客户端之后,

就如PC上的

只需要填入

QQ软件一样,

IP信息、

使用方便、

用户

快捷。网页浏览器上,则是把用户发送的信息先转换为XML

的形式,再使用key密钥,将信息发送给服务器接收,服务器再

把信息转发至其他用户。移动应用则是导入Smack的相关依

赖,

HTTP

通过Smack内部的方法,连接Openfire服务器,之后使用

简单、

将信息发送给服务器接收即可。对于开发者而言,

方便、快捷,而且使用方式多样。

操作

3总结

在目前移动应用飞速发展的大环境下,移动服务将会成为

未来发展的一种趋势,

App

理的尝试。而自建

,为学生、老师提供一个学习交流的平台,

开发一个面向高校学生群体的学习类

IM服务器也将会成为一种发展趋势,

也不失为一种合

越来

越多的企业、开发者为了开发便利、安全性的考虑会自建相关

的IM服务器。而IM服务器的种类也会更加多样,功能安全性

也会更高。

参考文献:

[1]梁莎.App界面设计课程的探索与思考[J].

[2]

73-74.

高教学刊,2015(14):

胡晓辉.基于Android的C语言学习App开发研究[J].电脑知

[3]

识与技术

于潇东.移动学习

,2019,15(22):82-83,86.

App

[4]

蒙古电大学刊

在国家开放大学教育中的应用[J].内

电子测试

张天祥,郝凯东

,2019(2):106-108,113.

,2019(2):89-90,88.

,徐志良.基于Android系统下的夜跑App[J].

【通联编辑:代影】

本栏目责任编辑:谢媛媛

本文标签: 服务器进行信息用户学习