基于Websocket的局域网聊天系统

news/2024/6/15 15:44:42/文章来源:https://blog.csdn.net/maoxiao1229/article/details/137170571

1.1 研究背景及意义

本项目所对应领域的研究背景及意义[1]。新冠肺炎局域网通信发生以来,大数据、云计算、人工智能等新一代信息技术加速与交通、局域网通信、教育、金融等领域深度融合,让局域网通信防控的组织和执行更加高效,成为战“疫”的强有力武器。从局域网通信信息统计分析,到流动人员健康监测、确诊病例追踪,再到局域网通信态势研判、预测,大数据技术助力筑牢局域网通信防控网,为科学防控、复工复产、民生保障等提供了有力支撑。

局域网是有限的地理范围内将大量计算机及各种其它设备互连以实现数据传输和资源共享的计算机网络。社会对信息资源的广泛需求及计算机技术的广泛普及,促进了局域网技术的迅猛发展。在当今的计算机网络技术中,局域网技术已经占据了十分重要的地位。局域网的计算机网络联系的地区范围通常不大,例如说在一座办公大楼中,一个工矿企业的一群建筑物和现场中,或者一所大学的中,其范围在几公里或十几公里以内。局域网就是在小范围内将各种数据通信设备互连起来,进行数据通信和资源共享的计算机网络。

局域网在严格意义上是封闭的,即物理上是与外部网络隔绝的。通常在局域网内会部署各种采用b/s架构(browser/server,浏览器/服务器模式)的各种系统,如企业内网系统,信息管理系统,办公自动化系统等。服务器提供web服务,局域网内的其他节点通过客户端浏览器进行访问。传统上在客户端在访问服务器时,对客户端的验证采用账号密码的方式,存在着比较大的安全隐患:一方面账号密码有可能泄漏和被破解,一旦账号密码泄漏,那么就可以通过任意客户端访问服务器,导致信息和数据被盗取;另一方面局域网虽然采用物理隔绝的方式,通过外部网络不能访问局域网内服务器,但是未经验证的客户端仍有可能接入局域网,对服务器进行攻击和数据盗取。

1.2 国内外研究现状

本项目所对应领域的国外/国内研究现状[2]。

(1)国外现状

 Facebook Messenger:属于Facebook旗下的即时通讯服务,可以在手机端和网页端使用,提供了好友聊天、群组聊天、语音、视频、表情等功能。 2. WhatsApp:世界上最大的即时通讯软件之一,可以在手机端和网页端使用,提供了好友聊天、群组聊天、语音、视频、表情等功能。 3. Telegram:一款安全、高速、简洁的即时通讯软件,可以在手机端、电脑端和网页端使用,提供了好友聊天、群组聊天、频道订阅、机器人等功能。 总的来说,基于web的好友聊天系统在国内外的应用非常广泛,不管是用于个人还是企业办公场景,都提供了许多丰富的功能。

(2)国内现状

微信:中国最大的即时通讯软件,可以在手机端、电脑端和网页端使用,提供了好友聊天、朋友圈分享、公众号订阅等功能。  QQ:中国最早的即时通讯软件,也可以在手机端、电脑端和网页端使用,提供了好友聊天、群组聊天、游戏等功能。 钉钉:一款专注于企业办公场景的即时通讯软件,可以在手机端、电脑端和网页端使用。

2 项目概述

2.1 项目背景

在信息化发达的社会背景下,局域网通信的需求与日俱增。本文采用局域网实现即时通信软件设计,设计出的系统应使用/S模型作为局域网与服务器间的连接架构,将系统与网络通信底层分开。从软件系统结构组成上来看,系统由客户端、服务器端、数据库等部分构成。不同于一般的通讯软件,该种软件采用局域网,各局域网中包含的电脑拥有固定IP,无需验证即可输入。而服务器端为软件核心,能够为用户提供客户端连接处理、发送数据信息等服务,并通过用户扫描完成用户IP读取,并在窗口中进行数据显示[1]。软件数据库能够实现高语义表达,以展现用户不同需求。此外,软件设计需完成界面设计,以满足人机交互需求。

2.2 项目可行性分析

项目可行性分析主要包含经济可行性、技术可行性等。

经济可行性方面:系统主要由作者自己开发,服务器就用自己的电脑,开发工具和技术我都采用市场上比较流行的免费开源工具和技术,基本没有经济成本。系统可部署在云服务器或者一般电脑,不会花费太多的金钱成本。

技术可行性方面:系统的开发语言采用Java,技术架构包含前端架构、后台架构。系统使用Java语言进行开发。本文系统采用Vue.js的开源前端框架,系统后端使用SpringBoot的Mvc模式的框架,数据库映射层采用MyBatis, 分布式数据库选择Redis3.5,底层数据库选择MySQL5.7。以上的技术我已经基本掌握,不存在技术风险。

2.3 相关技术、工具简介

2.3.1 SpringBoot框架技术

SpringBoot其实也是基于Mvc模式的框架,它简化了很多配置,比如Sring配置、Mybatis配置、Redis组件配置,直接将各类组件整合在一起,很大程度上提高了开发效率。

2.3.2 Mybatis框架技术

Mybatis是一款优秀的持久层框架,通过Mybatis的mapper文件,我们可以编写数据库执行语句操作数据库,它支持复杂的关联查询和模糊匹配,它非常方便,开发效率也挺高。

2.3.3 Vue框架技术

Vue是一套用于构建用户界面的渐进式框架,自底层向上应用,Vue的核心库只关注视图层,容易入门,可以和第三方库或者已有的项目进行整合,可以做复杂的单页应用。简单的说,vue是一套前端的开发框架,vue是目前三大主流的框架之一,其他两个框架是:React、Angular。

2.3.3 Eclipse开发工具

Eclipse不仅是开发框架也是IDE,它开源免费,非常适合学生群体使用,也不会存在版权纠纷,同时支持Maven,可以直接通过Maven项目形式导入Eclipse开发工具中。

2.3.4 Dbeaver数据库可视化工具

Dbeaver是一种功能强大的数据库可视化开发和设计工具,它可以很直观反应数据库表直接的关系,可以快速生成E-R图,方便我们理解数据库的表关系,本文用Dbeaver作为Mysql数据库的可视化工具。

2.3.5 Mysql5.7数据库

Mysql5.7版本进一步提高了数据库的性能和数据库函数,可以快速开发相关的数据库表和函数、自定义视图和存储过程,方便我们学生使用,同时也免费。

2.3.6 SSL局域网通信协议

握手协议:这个协议负责被子用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法和认证方式,并使用公钥技术来生成共享密钥。
(2)记录协议:这个协议用于交换应用数据。应用程序消息被分割成可管理的数据块,还可以压缩,并产生一个MAC(消息认证代码),然后结果被加密并传输。接受方接受数据并对它解密,校验MAC,解压并重新组合,把结果提供给应用程序协议。

(3)警告协议:这个协议用于每时示在什么时候发生了错误或两个主机之间的会话在什么时候终止。

3 项目需求分析

3.1 角色分析

本设计项目存在两种角色,本系统分为管理员和用户角色。

3.3 功能需求分析

主要内容:这是一个完成用户日常数据管理局域网通信以及管理员管理局域网通信信息的系统,具有较高的实用性与操作性。

首先确定系统有用户角色。

主要的功能模块有:

1)登陆功能:首先用户点击登陆,验证成功后跳转至下一个的页面,若密码错误或是用户名错误则跳转失败,弹出报错提示。

2)注册功能:首先用户点击注册,输入用户名、密码、确认密码等信息注册。

3)好友添加:首先点击添加好友,输入昵称进行查询,查询到结果之后,点击保存添加,完成对好友的添加。

4)好友列表功能:通过设计查询好友列表接口,查询我的好友列表。

5)在线聊天功能:针对已经添加的好友,可以进行在线聊天。

语音聊天功能:添加好友之后,可以点击语音录音完成语音录制,然后点击发送按钮发送语音文件进行在线交流。
7)个人信息修改功能:点击设置按钮,对个人的昵称、姓名、性别、个性签名、头像等信息进行修改。

以下是效果图:

系统文字聊天界面设计如下:

(3)系统发送语音消息界面设计如下:

(4)系统发送图片消息界面设计如下:

总结:

基于Websocket的局域网聊天管理系统是一套基于大数据技术,SpringBoot框架、以MySQL为底层数据库,Mybaits数据库映射框架、Laui作为前端框架的系统。完成了对局域网通信数据管理系统的需求分析、功能模块实现的划分、大数据Spark的框架搭建、数据库关系分析与设计以及编码的实现。

基于SSL的局域网聊天管理系统前台主要功能有登录功能、添加好友功能、好友列表、在线聊天、语音聊天、在线发送文件等。

该系统从需求分析,到功能需求设计,代码的编写和测试都由自己全程参与,觉得自己从中收获了许多。

[参考文献]

李正仁,周凯虎,王全贵,苏萌.基于Node.js与微信小程序的活动管理平台[J].计算机系统应用,2019,28(12):86-92
基于RFID技术局域网聊天管理系统的分析与评价.高飞.杨剑平.关静霞.史伟,2012第二十六届
全国计算机信息管理学术交流会2]局域网聊天管理系统中的数据管理行为分析.王福生.杨洪勇,2011第七届中国多智能体系统与控制会议
小型系级资料室局域网聊天管理系统的开发及应用.邓腹娥,2009湖北省局域网通信馆学会2009年学术年会
基于J*A的局域网聊天管理系统设计与实现.李福林.王津涛.王冬梅,2009第20届全国计算机新科技与计算机教育学术大会
基于.NET技术的局域网聊天管理系统LIBMAN的设计与开发.尚明华.秦磊磊.李景岭,2003全国网络环境下信息资源共享学术研讨会
RFID局域网聊天管理系统中局域网通信定位排架方式探析.《局域网通信馆论坛》.被北京大学《中文核心期要目总览》收录PKU.被南京大学《核心期刊目录》收录CSSC1.2012年3期.林晓玲杨明华[4].基于UML实现局域网聊天管理系统的建模设计.《局域网通信情报知识》.被北京大学《中文核心期刊目总览》收录PKU.被南京大学《核心期刊目录》收录CSSCI.2005年1期.潘伟.
基于Struts与Hibernate框架的局域网聊天管理系统研究与设计.《安徽大学学报 (自然科学》.被中信所《中国科技期刊引证报告》收录ISTIC.被北京大学《中文核心期刊要目总览》录PKU.2009年3期.刘铭徽
无线射频局域网聊天管理系统的设计与实现.《情报杂志》.被北京大学《中文核心期刊要目总收录PKU.被南京大学《核心期刊目录》收录CSSC1.2009年z2期高飞.宁路.曾频[8].局域网通信馆局域网聊天管理系统的设计.《中国科技信息》.2007年11期.顾俐.
王彩霞,王睿.MySQL与SQL Server数据完整性约束的比较教学[J].电脑知识与技术,2021,17(21):26-28.
赵莹,胡畅达,王国宇.三种关系型空间数据库比较[J].科技创新与应用,2021,11(19):62-64.
苏文瑾.“MySQL数据库”课程教学难点分析——以数据库设计为例[J].无线互联科技,2021,18(12):119-120.
林慧.MySQL存储过程在软件测试中的应用[J].电脑编程技巧与维护,2021(06):28-30.
王廷永,黄松.测试用例自动生成技术综述[J].电子技术与软件工程,2021(18):51-53.
妥泽花.基于黑盒测试与白盒测试的比较探究[J].电子世界,2021(11):55-56.
马萌,赵煜.一种基于软件测试用例库的设计方法[J].计算机与网络,2021,47(15):48-50.
刘彦楠.JUnit参数化测试的应用研究[J].信息与电脑(理论版),2021,33(14):30-32.
贾秀秀. 智慧社区应用系统自动化测试设计与实现[D].南京邮电大学,2020.
Zhaozhou Chen, Hean Liu. Network Mall System Inb/S Mode[J]. International Journal of Intelligent Information and Management Science,2019,8(3)
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/maoxiao1229/article/details/136790824

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1033524.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【三】EMQX 手动创建集群

EMQX 手动创建集群 简介 因为项目中使用到了emqx中间件,所以近期对中间件进行了进一步的研究,每次选用中间件我都会考虑可用性方案,如下是本地实践的记录。 一、部署 1、创建一个 Docker 网络,用于节点间通信。处于同一网络下的…

STM32F103通过labview上位机上传温湿度数据到OneNET物联网平台

资料下载地址:STM32F103通过labview上位机上传温湿度数据到OneNET物联网平台 本实验通过两个STM32单片机设备分别测量室内外的温湿度,并把数据发送到上位机上传到ONENET物联网平台。 大体数据传输流程如下: 首先是注册OneNET平台账号&#…

【面试题】RocketMQ怎么处理消息积压?

如图,消息积压主要是因为,消费能力不足: 在RocketMQ中,处理消息积压的方法可以采取以下几种策略: 增加消费者数量:可以通过增加消费者数量来提高消息的消费速度。通过增加消费者实例或者消费者组的数量,可…

新网站秒收录技术,新网站百度收录时间

在建立新网站后,让它尽快被搜索引擎收录是网站主最为关注的事情之一。百度作为中国最大的搜索引擎,网站被其快速收录对于增加曝光和流量至关重要。本文将介绍一些新网站秒收录技术,以及一般情况下新网站被百度收录需要的时间。 新网站秒收录技…

Android视角看鸿蒙第十课-鸿蒙的布局之线性布局

Android视角看鸿蒙第十课-鸿蒙的布局之线性布局 导读 这篇文章开始,依次学习鸿蒙的八大布局,这是第一篇,所以顺带也会聊聊通用属性。 文档地址 文档地址 如何定义一个线性布局 Android中是使用LinearLayout来构建线性布局的&#xff0c…

Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(五)

概览 我们在上一篇 Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(四)博文中“一头扎入”系统底层,从汇编语言的角度详细介绍了 iOS 运行时(Runtime)方法调用栈的跟踪、以及如何恣意更改方法调用链走向等理论知识。 “纸上来得终觉浅,绝知此…

C++多态的一些理解

C多态的一些理解 多态的概念 什么是多态?多态是C的三大特性之一。简单来说就是用一种接口(函数)来实现多种不同的功能。当我们调用同一个函数的时候,根据业务需要,会执行不同的功能,产生不同的效果。 为…

大创项目推荐 深度学习 opencv python 实现中国交通标志识别

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 🔥 优质…

VSCode在文件生成添加作者,创建时间、最后编辑人和最后编辑时间等信息

一、安装插件 我使用的是 korofileheader 二、配置文件 左下角点击设置图标—设置—输入"ext:obkoro1.korofileheader"—点击"在setting.json中编辑" 进入后会自动定位到你添加信息的地方 "Author": "tom", "Date": "…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(5)

PS从入门到精通视频各类教程整理全集,包含素材、作业等 最新PS以及插件合集,可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新 初寒调色案例及练习图 等文件 https://www.alipan.…

JimuReport积木报表 v1.7.4 正式版本发布,免费的JAVA报表工具

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…

大数据量查询语句优化

测试单表模糊查询,符合条件的数量为: -- 查看总共有多少条数据 select count(0) from "REGISTER_HOUSE_INFO" where SEAT_NAME like %1% ;未优化:测试单表模糊查询分页,符合条件的数据为: select * from …

【Linux2】Linux的权限

思维导图 学习内容 在介绍完一些基本指令后,我们需要进行对权限以后一个全新的认识,比如文件的权限、目录的权限等等…… 学习内容 通过上面的学习目标,我们可以列出要学习的内容: shell命令以及运行原理Linux权限的概念Linux权…

【Frida】【Android】06_夜神模拟器中间人抓包

🛫 系列文章导航 【Frida】【Android】01_手把手教你环境搭建 https://blog.csdn.net/kinghzking/article/details/136986950【Frida】【Android】02_JAVA层HOOK https://blog.csdn.net/kinghzking/article/details/137008446【Frida】【Android】03_RPC https://bl…

EasyExcel 复杂表头的导出(动态表头和静态表头)

问题:如图,1部分的表头是动态的根据日期变化,2部分是数据库对应的字段,静态不变的; 解决方案:如果不看1的部分,2部分内容可以根据实体类注解的方式导出,那么我们是不是可以先将动态表…

vivado 配置存储器器件编程2

为双 QSPI (x8) 器件创建配置存储器文件 您可使用 write_cfgmem Tcl 命令来为双 QSPI (x8) 器件生成 .mcs 镜像。此命令会将配置数据自动拆分为 2 个独立 的 .mcs 文件。 注释 : 为 SPIx8 生成 .mcs 时指定的大小即为这 2 个四通道闪存器件的总大小。…

[leetcode]剑指 Offer 29. 顺时针打印矩阵

前言:剑指offer刷题系列 问题: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]思路: 看到这个…

标准版IP地址证书

IP地址证书是一种网络安全工具,用于确保互联网通信中IP地址的所有权和真实性。它类似于为网站颁发的SSL/TLS证书,但专门针对IP地址。这种证书由受信任的第三方机构(如证书颁发机构)签发,包含公钥、所有者信息和有效期。…

Php_Code_challenge18

题目: 答案: 解析: strcmp遇到特殊类型数据返回0,MD5函数遇到特殊数据类型会返回0,弱类型可用16进制绕过。

el-row一行放置3个el-col,有时出现空行现象

利用el-row的type属性&#xff0c;将type设置为flex&#xff0c;启用flex布局&#xff0c;再设置justify和align属性&#xff0c;即可避免该问题出现。 <el-row type"flex" class"row-bg"><el-col :span"6"><div class"gri…