登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于Electron的一款聊天软件的开发毕业论文

 2021-11-18 10:11  

论文总字数:17600字

摘 要

基于WebRTC和Electron的一款桌面聊天软件,其独特的p2p视频通话功能给用户带来高清、安全的视频通话体验;基于p2p的文件在线传输功能,让用户不受服务器带宽限制,享受方便快捷的文件传输体验;基于sockit.io的私人聊天和多人聊天,满足用户的社交需求;聊天记录自动备份,不用担心丢失,切换设备也能查看聊天记录。

本文主要讲述了系统中主要模块的设计过程和使用方法,对涉及到的相关技术进行讲解,并对研究成果进行了展示。

关键词:WebRTC;视频;Electron;聊天;Socket.io;文件在线传输;

Abstract

A desktop chat software based on WebRTC and electron, its unique P2P video call function brings users a high-definition and secure video call experience; P2P based file online transfer function, allows users to enjoy convenient and fast file transfer experience without the limitation of server bandwidth; private chat and multi person chat based on sockit.io, meet users' Social needs; chat notes Record automatic backup, don't worry about losing, switch device can also view chat record.

This article mainly describes the design process and use method of the main modules in the system, explains the related technologies involved, and shows the research results.

Key Words:WebRTC;Video call;Electron;chat;Socket.io; Files are transferred online;

目录

摘 要 I

目录 1

第1章 绪论 1

1.1 课题背景 1

1.2 国内外研究现状 1

1.3 系统开发的技术简介 2

1.3.1 NodeJS 2

1.3.2 Vue 2

1.3.3 Electron 2

1.3.4 WebSocket 2

1.3.5 WebRTC 3

1.3.6 MySQL 3

第2章 需求分析 4

2.1 可行性分析 4

2.1.1 客户端 4

2.1.2 服务端 4

2.2 功能性需求分析 4

2.2.1 系统模块划分 4

2.2.2 功能模块图 5

2.3 非功能性需求分析 6

第3章 相关技术调研 7

3.1 NAT穿透 7

3.2 WebRTC候选者 9

3.3 WebRTC连接过程 10

第4章 系统设计与开发 13

4.1 系统结构设计 13

4.2 数据库设计 14

4.3 主要功能模块设计 15

4.3.1 登陆注册模块 15

4.3.2 用户设置模块 17

4.3.3 联系人模块 17

4.3.4 私人聊天模块 18

4.3.5 多人聊天模块 19

4.3.6 语音、视频聊天模块 19

4.3.7 文件传输模块 20

4.3.8 身份验证模块 22

4.3.9 进度条模块 23

第5章 软件测试 24

5.1 白盒测试 24

5.2 黑盒测试 25

第6章 总结 28

参考文献 29

致 谢 30

第1章 绪论

1.1 课题背景

随着互联网生态的蓬勃发展,人们不再满足于受时间、地点限制的面对面社交。无边界、多元化的社交平台的成为了当下炙手可热的互联网产品。为了给广大互联网用户提供更便捷的社交方式,我准备研发一款聊天交友软件,提供给用户轻松愉快的社交体验。

1.2 国内外研究现状

伴随着互联网生态的发展,国内上网用户的规模不断扩大。 根据CNNIC[1]的研究报告,中国互联网即时通信发展状况如表1.1所示:

表1.1 中国互联网即时通信发展状况表

年份

中国互联网即时通信用户规模(亿人)

在整体网民中占比

2011

5.13

80.9%

2014

5.57

85.8%

2018

7.92

95%

2020

8.89

99.2%

从这些数据中,我们不难看出,国内即时通信行业发展态势良好。据CNNIC调查结果显示,这一现象得益于小程序平台的蓬勃发展。

全球社交软件活跃排行表如表1.2所示:

表1.2 全球社交软件活跃排行表

排行

名称

介绍

成就

第一

Facebook

俗称“脸书”,美国的一个社交网络服务网站 ,创立于2004年2月4日

在2015年,Facebook单日用户数就突破了10亿,2019年Facebook月活跃用户高达22.34亿

第二

WhatsApp

一款用于智能手机之间通讯的应用程序

到目前为止,其用户数量已达到20亿

第三

Messenger

Facebook旗下的一款简洁版的社交APP

2019年月活跃用户达到了13亿

第四

微信

腾讯公司于2011推出的一个为智能终端提供即时通讯服务的免费应用程序

截止到2016年第二季度,微信已经覆盖中国94%以上的智能手机,月活跃用户达到8.06亿

从表1.2中,我们不难看出社交软件在互联网体系中的地位,只要是互联网覆盖到的地方,就离不开社交软件的应用,开发这样一款软件是十分有意义的。通过学校4年的软件开发相关课程的学习,我已经熟悉了基本的软件开发体系,具备了独立开发一款软件系统的能力。结合时下热门的WebRTC技术,我准备开发一款社交聊天软件来验证大学学习成果。

1.3 系统开发的技术简介

1.3.1 NodeJS

Node是一个轻量和高效的JavaScript的运行环境,可以用来快速搭建一个轻量、可伸缩的服务端。NodeJS有着单线程多并发、异步、事件驱动、非阻塞I/O 模型等特点,非常适合搭建中小型应用[1]。在本系统中,使用基于JavaScript的Express框架快速搭建服务端来与客户端交互、使用数据库保存用户数据、使用Express框架中间件处理文件上传等实现一个搭建的服务器。

1.3.2 Vue

Vue.js是一套基于JavaScript的渐进式框架。它独特的数据驱动模式,使开发者能更直观更高效的构建用户界面。它的出现极大的降低了前端开发门槛,让开发者能更方便更快速的搭建前端应用。与其它框架相比,它的数据驱动模式对侦测数据的变化更敏感、更精确、更容易让开发者感知。在本系统中,使用Vue和Electron搭建客户端。

1.3.3 Electron

应用底层框架,支持采用web技术开发桌面应用,并且利于跨平台,一套代码,多平台运行。使用这套技术可以在开发阶段将客户端运行在web上开发调试,极大的缩短开发时间,并且能将同一段代码运行在Electron平台上打包成一个桌面应用。除此之外,Electron提供给开发者一系列操作系统的接口,能完成常见web系统所不能实现的功能。

1.3.4 WebSocket

WebSocket位于OSI模型的应用层,可在单个TCP连接上进行全双工通信 [2]。一个聊天系统不仅仅需要通过https与服务端通信,也需要使用全双工通信来实现一个基本的聊天功能[3][4] [4][5]。此外,本系统也需要使用WebSocket来搭建一个信令服务器。

1.3.5 WebRTC

WebRTC是一项实时通讯技术。它能在不借助服务器或者其它中间媒介的情况下,在浏览器之间建立p2p连接[6]。主要用来高效、安全的传输视频流和音频流数据,也可以利用数据通道其他任意类型的数据。WebRTC集成了音视频引擎, 并且提供了一个简单易扩展的技术方案, 使得Web开发者无需另外学习多媒体技术,仅通过简单的调JavaScript API就可进行实时p2p通信, 可以方便地通过互联网提供语音、视频和数据等多种应用。WebRTC的这些特点使用户无需安装任何插件或者第三方的软件[7],就能傻瓜式的创建点对点的视频会议或者数据分享。

1.3.6 MySQL

MySQL是一个开源的关系型数据库管理系统,它提供的接口非常丰富、性能十分强大、自主性很强、社区生态也比较完善。在本系统中,使用它来存储用户数据、群聊数据和聊天信息。

第2章 需求分析

请支付后下载全文,论文总字数:17600字

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

企业微信

Copyright © 2010-2022 毕业论文网 站点地图