基于Websocket的局域网聊天系统

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)系统发送图片消息界面设计如下:

总结:

基于SSL的局域网聊天管理系统是一套基于大数据技术,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.mfbz.cn/a/501611.html

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

相关文章

C++王牌结构hash:哈希表开散列(哈希桶)的实现与应用

目录 一、开散列的概念 1.1开散列与闭散列比较 二、开散列/哈希桶的实现 2.1开散列实现 哈希函数的模板构造 哈希表节点构造 开散列增容 插入数据 2.2代码实现 一、开散列的概念 开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址&…

Day57:WEB攻防-SSRF服务端请求Gopher伪协议无回显利用黑白盒挖掘业务功能点

目录 SSRF-原理&挖掘&利用&修复 SSRF无回显解决办法 SSRF漏洞挖掘 SSRF协议利用 http:// (常用) file:/// (常用) dict:// (常用) sftp:// ldap:// tftp:// gopher:// (…

使用AOP实现打印日志

首先创建annotation.SystemLog类: package com.gjh.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD…

深度学习pytorch——nn.Module(持续更新)

作为一个初学者,发现构建一个简单的线性模型都能看到nn.Module的身影,初学者疑惑了,nn.Module到底是干什么的,如此形影不离,了解之后,很牛。 1、nn.Module是所有层的父类,比如Linear、BatchNor…

Bun安装与使用

Bun安装与使用。 它目前无法在windows上直接安装使用,必须通过虚拟机安装。 在win10虚拟机中安装 # 查看内核版本 $ uname -srm Linux 6.1.0-10-amd64 x86_64# 安装unzip解压工具 $ sudo apt install unzip# 下载安装脚本并开始安装 curl -fsSL https://bun.sh/ins…

C#使用SQLite(含加密)保姆级教程

C#使用SQLite 文章目录 C#使用SQLite涉及框架及库复制runtimes创建加密SQLite文件生成连接字串执行SQL生成表SQLiteConnectionFactory.cs 代码结构最后 涉及框架及库 自己在NuGet管理器里面安装即可 Chloe.SQLite:ORM框架Microsoft.Data.Sqlite.Core:驱…

3.Python数据分析—数据分析入门知识图谱索引(知识体系中篇)

3.Python数据分析—数据分析入门知识图谱&索引-知识体系中篇 一个人简介二数据获取和处理2.1 数据来源:2.2 数据清洗:2.2.1 缺失值处理:2.2.2 异常值处理: 2.3 数据转换:2.3.1 数据类型转换:2.3.2 数据…

【unity】解决unity编译器安装中文汉化包失败

如果有的同学中文包安装失败,我们找到相应的编译器版本,点击在资源管理器中显示按钮, 我们点击当前目录的上一级,进入编译器目录。 找到modules.json文件双击打开 我们找到简体中文,复制downloadUrl后面的值到浏览…

Spark SQL— Catalyst 优化器

Spark SQL— Catalyst 优化器 1. 目的 本文的目标是描述Spark SQL 优化框架以及它如何允许开发人员用很少的代码行表达复杂的查询转换。我们还将描述Spark SQL如何通过大幅提高其查询优化能力来提高查询的执行时间。在本教程中,我们还将介绍什么是优化、为什么使用…

K8S安装和部署(kubeadmin安装1主2从)

这里用kubeadmin方式进行安装部署 1. 准备三台服务器 服务器地址 节点名称 192.168.190.200 master 主 192.168.190.201 node1 从 192.168.190.202 node2 从 2. 主机初始化(所有主机) 2.1根据规划设置主机名 #切换到192.168.190.200 hostnamectl…

【C++的奇迹之旅】C++关键字命名空间使用的三种方式C++输入输出命名空间std的使用惯例

文章目录 📝前言🌠 C关键字(C98)🌉 命名空间🌠命名空间定义🌉命名空间使用 🌠命名空间的使用有三种方式:🌉加命名空间名称及作用域限定符🌠使用using将命名空间中某个成员…

【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…

如何更新STEAM税务信息

回复邮件 Here are three attachments:. Figure 1: My personal tax information file in the government system, including my TIN, permanent address and mailing address Figure 2. My tax payment certificate in China in 2002 was issued by the tax bureau, Figure 3:…

npm ERR! errno CERT_HAS_EXPIRED

1 问题描述 使用npm命令安装相关依赖报错:npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/vue%2fcli failed, reason: certificate has expired报错示例图如下所示: 2原因分析…

C语言循环结构的程序设计

在C语言中,循环结构是一种重要的控制结构,用于重复执行特定的代码块,直到满足特定的条件为止。循环结构使得程序可以更加灵活和高效地处理重复性的任务,从而提高了程序的可读性和可维护性。本文将深入介绍C语言中循环结构的程序设…

小型分布式文件存储系统GoFastDfs应用简介

前言 最近稍微留意了一下各个文件存储系统的协议,发现minio是LGPLV3, 而fastdfs 是GPL3,这些协议其实对于商业应用是一个大坑。故而寻找一些代替品。 go-fastdfs就是其中之一,官网在: go-fastdfs 具体应用 其实可以直接查看官网教程的。 下…

Jenkins详细安装配置部署

目录 简介一、安装jdk二、安装jenkins这里如果熟悉 Jenkins ,可以【选择插件来安装】,如果不熟悉,还是按照推荐来吧。注意: 三、插件安装如果上面插件安装,选择的不是【安装推荐的插件】,而是【选择插件来安…

学习Fast-LIO系列代码中相关概念理解

目录 一、流形和流形空间(姿态) 1.1 定义 1.2 为什么要有流形? 1.3 流形要满足什么性质? (1) 拓扑同胚 (2) 可微结构 1.4 欧式空间和流形空间的区别和联系? (1) 区别: (2) 联系: 1.5 将姿态定义在流形上比…

基于java+springboot+vue实现的二手闲置物品置换系统(文末源码+Lw+ppt)23-375

摘 要 大学生二手闲置物品置换交易管理系统设计的目的是为用户提供免费物品、积分物品等功能。 与其它应用程序相比,大学生二手闲置物品置换交易的设计主要面向于学校,旨在为管理员和卖家、用户提供一个大学生二手闲置物品置换交易管理系统。用户可以…

Java项目:80 springboot师生健康信息管理系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统的角色:管理员、宿管、学生 管理员管理宿管员,管理学生,修改密码,维护个人信息。 宿管员…