基于WebSocket的即时通讯系统的设计与实现

 2022-01-17 11:01

论文总字数:32095字

目 录

摘要 I

Abstract II

1 绪论 1

1.1 即时通讯技术的背景 1

1.2 开发基于Web的即时通讯系统的目的及意义 1

1.3 本文组织结构 2

2 相关技术 3

2.1 Java技术 3

2.1.1 Java语言 3

2.1.2 Spring Boot 3

2.1.3 Thymeleaf 4

2.2 Web技术 4

2.2.1 HTML5 4

2.2.2 JavaScript 4

2.2.3 WebSocket 4

2.2.4 WebRTC 4

2.3 数据库技术 5

2.3.1 MySQL 5

2.3.2 MyBatis 5

3 系统分析 5

3.1 可行性分析 5

3.1.1 经济可行性 5

3.1.2 技术可行性 5

3.1.3 社会可行性 6

3.2 需求分析 6

3.2.1 功能需求分析 6

3.2.2 系统用例分析 7

3.2.3 系统流程分析 8

3.3 开发和运行环境 9

3.3.1 开发环境 9

3.3.2 运行环境 9

3.4 本章小结 10

4 系统概要设计 10

4.1 功能模块设计 10

4.1.1 登录模块 10

4.1.2 即时通讯模块 11

4.1.3 动态模块 12

4.1.4 后台管理模块 12

4.2 数据库设计 12

4.2.1 数据库概念设计 12

4.2.2 数据库物理设计 13

4.3 本章小结 16

5 系统详细设计与实现 16

5.1 项目结构 16

5.2 项目配置 17

5.2.1 Gradle配置 17

5.2.2 Spring Boot配置 18

5.2.3 其他自定义配置 18

5.2.4 工具类 19

5.3 功能模块实现 20

5.3.1 登录模块 20

5.3.2 即时通讯模块 24

5.3.3 WebSocket实现 29

5.3.4 动态模块 31

5.3.5 后台管理模块 31

5.4 本章小结 32

6 程序部署与测试 33

6.1 服务器部署 33

6.1.1 TURN服务器 33

6.1.2 Tomcat服务器 33

6.2 程序测试 34

6.2.1 测试环境 34

6.2.2 测试过程 34

6.3 本章小结 35

7 总结 35

参考文献 36

致谢 37

基于WebSocket的即时通讯系统的设计与实现

李弘光

, China

Abstract: Every individual’s way of living is changing as the Internet evolves. Because of the sustained increase of users’ requirements, software technologies are rapidly developing. Since new technologies based on Web platform emerges continuously, Web-based applications are replacing traditional native clients in many scenarios. The birth of WebSocket protocol and WebRTC technology extends the features of Web platforms. In theory, they can meet the requirements of an instant messaging system. The purpose of this research is to explore and study WebSocket. Through the development of a Java Web application which is compatible to both desktop and mobile platforms and the deployment on an Aliyun ECS server, the research focused on the features and effects of WebSocket in practical application. Finally I got the conclusion that WebSocket can satisfy the functional requirements of an instant messaging system, and the time cost of development is relatively low. It is worthy of further investigation.

Key words: Instant Messaging; WebSocket Protocol; Java Language; Cross-platform

1 绪论

1.1 即时通讯技术的背景

即时通讯(Instant messaging)是一组用于双方或更多参与者的在线通信技术。这种通讯是实时的,这是与诸如电子邮件等其他通信技术的最大不同。即时通讯是一种高效的通信手段,使用者能够立即接收回复或确认。即时通讯的概念早在上世纪六十年代就已诞生,这种名为.SAVED的程序可以在CTSS(兼容分时系统)上运行,用户可以将文本插入其他用户命令行终端输出缓冲区[1]。九十年代互联网诞生后,即时通讯进入了蓬勃发展期,从那时生存下来的QQ和Skype始终在提供高质量的服务。而近十年社交网络的发展使即时通讯赋予了新的意义,即时通讯发展成为了社交网络的一部分。如今WhatsApp全球拥有15亿月度活跃用户[2],而国内流行的微信,活跃用户也超过了10亿[3]。即时通讯因为满足了人们最重要的沟通需求,是人们互联网生活不可或缺的组成部分。

如今要实现即时通讯,通常的方法是利用Socket,这是一种双向通信的节点。Socket又称套接字,原意是插座。Socket需要包含双方的地址、端口,这样就可以进行通信。相应的,面向Web的Socket协议WebSocket就可以用来实现Web端的即时通讯。WebSocket提供了浏览器到服务器的全双工通信信道,由IETF(互联网工程任务组)在2011年提出的RFC 6455标准首次规范化。WebSocket协议可以让浏览器和服务器之间以低开销进行实时数据传输,在双向通信时,WebSocket比传统的XMLHttpRequest和Server-Sent事件都要快[4]。因此,从现有的技术看,WebSocket或许是Web即时通讯最好的选择。虽然WebSocket API标准还没有正式由W3C发布推荐标准,但是WebSocket协议本身正是为了适应网络通信的需求而诞生的,主流浏览器都提供了较好支持。WebSocket还不能解决一些复杂应用场景,WebRTC应运而生。WebRTC是一个基于WebSocket协议的由Google开源的项目,旨在提供高质量的Web通信服务。它最大的亮点就是支持音视频通信。W3C和IETF正在起草WebRTC标准。与此同时,因为WebRTC已经得到了Google、苹果、微软和Mozilla的大力支持,大多数浏览器已经支持WebRTC。可以说,一个包含常用功能的即时通讯系统已经可以在Web端实现。

1.2 开发基于Web的即时通讯系统的目的及意义

随着Web技术的发展和各种标准Web API的完善,基于浏览器和服务器的B/S模式正在逐步取代客户端和服务端的C/S模式。B/S模式的软件只需要浏览器即可运行,无需进行客户端层面的单独安装部署,更新升级也只需在服务器进行。同时,只要按照Web标准开发,可以轻易实现跨平台,大大减轻开发者工作。B/S模式有两大缺陷:功能缺陷和性能缺陷。功能性方面,层出不穷的新Web API实际上能解决普通人几乎所有日常需求的功能。在桌面环境下,只要不是涉及复杂实时计算的场景中,性能方面相对原生客户端的弱势并不明显,但是在移动端上不容忽视。

因为即时通讯是一个重要的应用领域,考虑到用户基数巨大,用户使用的设备可能并不支持新的API、用户设备性能各异,各个大公司实际的产品重心都在客户端上。但是他们也正在对Web端进行尝试。主流的WhatsApp和微信都提供了功能不完善的桌面端网页版;Google作为WebRTC的发起者,其Google Hangouts的桌面端网页版功能完善,体验出色,但是禁止移动端访问;微软的Skype正在对Web版进行Beta测试,在桌面端和移动端都功能完整,但是界面有些问题。如图1-1,大部分桌面和移动端的主流浏览器已经兼容WebRTC,意味着Web端即时通讯的功能性问题基本已经解决。由此可见开发基于Web的即时通讯是大势所趋。

图1-1 WebRTC兼容情况(caniuse.com)

本课题作为个人项目,主要用途在于研究新技术的原理及使用,可以通过使用较新的软硬件来规避前文所述缺陷,充分发挥Web应用的优势。本项目是一个遵循HTML5规范,兼容主流浏览器,在桌面端和移动端均有良好用户体验的跨平台即时通讯系统。鉴于行业内此类系统离主流应用还有相当长的距离,本课题研究具有一定创新性和前瞻性。得益于Web标准,本课题具有可行性,可以在有限时间内独立完成。另外,本系统前后端分别主要采用Java和JavaScript语言编写,编译完成后运行于阿里云ECS服务器上,可以实际访问,具有一定实用意义。

1.3 本文组织结构

本课题通过查阅文献资料和动手实践相结合的方法,设计并实现即时通讯系统,对WebSocket技术进行学习研究。本课题研究方向偏向应用领域,因此实践是至关重要的,论文主要侧重点在软件开发的设计和实现,共有七个章节。

第一章是绪论,对即时通讯系统及Web平台的背景进行介绍,包含了当前市场背景及技术研究现状的分析,阐述了两者结合开发基于WebSocket的Web系统的目的和意义,并介绍论文的组织结构。

剩余内容已隐藏,请支付后下载全文,论文总字数:32095字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;