基于网络编程的实时通讯系统设计与实现_第1页
基于网络编程的实时通讯系统设计与实现_第2页
基于网络编程的实时通讯系统设计与实现_第3页
基于网络编程的实时通讯系统设计与实现_第4页
基于网络编程的实时通讯系统设计与实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

页(共28页)引言伴着信息技术、互联网基础设施和多媒体通信手段的急速发展,网络通信系统在人类社会活动中发挥的作用日益凸显,实时通信不仅是现代办公、远程教学、在线医疗和数字政务的关键组成,也在高校教学、技术培训以及工程实践中充当关键角色。特别是在疫情催生的远程协作背景里,用户对通信系统在实时性、稳定性、功能性及可扩展性上提出了更高要求,大型商业通信平台普遍存在架构复杂、代码封闭、接口有一定限制、开发门槛高等毛病,造成其在教学、科研、原型开发等场景下的适应程度大幅降低,这一现实矛盾让技术开发者和教学工作者去寻找更轻量、易上手、方便集成与定制的通信系统开发模型,以推动通信技术的普及化及本地应用实施。传统通信系统开发往往以底层C或Java平台为基础,功能实现把稳定性放首位,然而界面设计和交互逻辑显得很老旧,开发的效率偏低,缺少现代软件工程的模块化及跨平台支持,伴随Qt等现代开发框架的兴起,开发者在可视化设计、跨平台兼容、线程管理等方面可得到更多便利,通信系统开发渐渐从面向过程过渡到面向对象以及组件化架构,让通信程序展现良好的用户体验,又可在维护与扩展方面满足项目演变需求。现代通信系统把数据传输的多样性与实时性作为重点强调,不再只是局限于纯文本对话,且更多涉及文件传输、音视频流同步、屏幕共享之类的复合型数据交互,这让通信架构的设计面临新的挑战,基于现代开发框架所构建的具备多功能、高功能表现、低复杂度的通信系统,不仅表现出技术层面的先进性,同样具备在实际教学与研发场景中广泛采用的现实意义。在以往的研究与开发实践里,学者们设计出多种轻量级通信系统构建模型,囊括了图形界面设计、多线程通信机制、文件与视频数据处理等多个技术方向范畴,Blanchette和Summerfield[1]通过Qt平台打造了GUI与Socket通信相融合的跨平台应用程序,明确界面逻辑跟网络逻辑分离的有利之处,提升了系统可维护能力与结构的清晰水平。Summerfield[2]将Qt在复杂应用开发中的高级用法进一步扩展了,为高效完成多模块集成提供了案例实证,黄宇东[3]等开展了对Qt多线程事件响应机制的研究,处理了传统通信程序中界面阻塞与响应滞后的问题,极大改善了通信系统的用户体验感。焦文涛[4]提出的以Qt为基础的即时通信系统设计,说明了在教学实践中采用轻量型通信架构的可行性和良好的展示效果,为高校课程设计与毕业设计项目供应了技术模板,刘文华[5]等进行了FFmpeg和SDL方面的研究,完成了本地视频流处理以及播放事宜,为远程屏幕共享功能打下了技术底子。张伟[7]等凭借Qt/Linux平台搭建起视频播放器系统,证实了图形与媒体功能融合的可行性,廖礼江[8]等人提及FFmpeg的硬件加速能力对通信系统流畅性有提升效果,在桌面共享与多媒体传输的场景中表现亮眼,李芳芳[9]等对H.264格式转换跟网络传输机制做了研究,说明当前通信系统在视频处理领域的灵活性愈发增强。罗亚非[10]所提出的基于TCP的多线程通信手段,为系统多用户并发处理给出了网络结构方面的参考,说明底层Socket模型于实际通信场景有可扩展性,分析上述的文献后容易发觉,将Qt框架、Socket通信与多媒体数据流技术结合起来,已成为轻量级通信系统搭建的关键技术路线,这为本课题供给了可靠的理论基础与完备的实践支持。。依托此背景及研究趋向,本课题拟打造一套具备局域网通信能力、结构简单清晰、功能完整的实时通信系统,此系统选用C++语言与Qt开发客户端的界面,采用Socket达成点对点的文字跟数据通信,后端采用MySQL对用户身份、聊天记录、文件传输记录和屏幕共享日志等数据加以管理。系统的主要功能有:用户实现注册登录、即时消息的发送与接收流程、文件的收发操作、屏幕共享会话以及管理员查看维护数据等,运用模块化设计跟多线程技术相组合,系统不仅呈现出良好的交互性与并发性,用于毕业设计项目的教学参考及实践平台。1可行性分析1.1技术可行性1.1.1所用编程语言(C++)C++是一种功能强大、执行效率十分高的编译型语言,有着面向对象的编程特质,可很好地对复杂系统的模块化设计与开发予以支持,C++具备的高性能特性,让系统在开展网络通信、文件读写以及屏幕捕获等操作时,可实现更快的响应速率和更少的资源耗费。C++有着良好的底层把控能力,让开发者可以随性地管理内存资源,增进系统的稳定性及安全性。C++和Qt框架[11]天然就是适配的,通过把Qt提供的图形用户界面(GUI)库[12]和网络模块关联起来,开发者可高效地创建出跨平台的图形界面以及TCP通信逻辑,由此大幅降低开发成本,增进开发效率。在屏幕共享和图像处理阶段,C++也可以高效地调用FFmpeg[13]的相关库,达成对图像数据的抓取、压缩再运送,保证系统在局域网环境下数据流通顺畅、功能平稳,C++语言在本系统中发挥了极为关键的作用,还为系统实现高性能运行打下了基础,也为功能的全部实现提供了强劲的语言后盾,是达成该实时通信系统的恰当之选。1.1.2系统架构(C/S)系统采用惯用的C/S(Client/Server,客户端/服务器架构模式去开展设计与实现,具备结构简明、通信高效、扩展灵活等益处,C/S架构把系统功能划分成了两部分:客户端的工作是与用户直接开展交互,实现界面表露、消息传送、文件抉择、屏幕共享管制等操作;服务器端统一接收多个客户端的请求后进行处理工作,实现消息的传送、文件的接收留存、用户登录注册的核实、屏幕共享数据的转接等功能。在此架构里面,客户端借助Socket与服务器搭建稳定的TCP连接,通信协议采用的是自定义格式,确保数据结构既统一又具备可扩展性,C/S架构的主要优势之一是服务器有能力集中管理多用户数据及行为,做到业务逻辑的统一处理,由此简化了客户端的功能压力,提高了系统整体在维护及控制上的可行性。该架构本身就支持局域网或者广域网的部署,便于多个终端一起接入,符合实时通信实际应用方面的需求。图1-1C/S模式三层结构图1.1.3数据库系统(MySQL)MySQL凭借广泛应用的关系型数据库管理系统而闻名,其主要益处在于数据分散存进多个表当中,而不是单一存在的大型数据存储库,这对提升操作效率有益处,还强化了数据管理的可塑性。MySQL所采用的SQL语言是应用最为广泛的标准化数据库访问语言之一,其优点为体积小巧、运行高效、开销不大,因为它采用了开放源码形式,诸多开发人员把MySQL作为他们于大中小型网站上的首选数据库解决方案。由于开源属性,MySQL使用成本较为低廉,还推动了社区持续发展以及技术进步,为用户提供了更可靠、稳定的数据库服务。1.2经济可行性系统开发主要依托开源技术栈,涵盖了C++、Qt框架[14]、MySQL数据库和FFmpeg[15]工具,这些工具皆为免费的开源软件,不必另外支付软件许可费用。开发操作中采用的硬件设备是普通个人电脑,系统部署及维护的成本同样较低,仅需一台配置处于中等水平的服务器即可支撑多个并发用户,从经济角度去看,本系统开发与实施呈现较高的可行性。1.3社会可行性本系统可实现实时消息传递与文件传输,契合远程办公、在线教育这类社会需求,贴合后疫情时代的协作走向。采用开源技术,便于推广到中小企业与学校,系统应进一步强化数据加密与RTSP流认证,以符合《个人信息保护法》等法规的相关要求,杜绝隐私出现泄露隐患,经过完善隐私保护以及多语言界面,系统可获较高的社会接受认可,支持低碳经济增长。但需要留意网络稳定性,保证服务不出现中断,从而维持用户的信赖,适合视频会议和远程通讯的相关场景。1.4操作可行性本系统为用户呈现了直观的图形界面,用户无需专业技术方面的背景就能完成消息发送、文件传输和屏幕共享等操作,界面设计符合用户既有的习惯,好比借助按钮达成文件的选择及发送。从用户实施操作的角度而言,本系统呈现出较高的可行性。2系统需求分析2.1基本情况2.1.1系统概述实时音视频通信及文件共享系统是为符合现代远程协作需求而构建的多功能平台。应用于企业远程会议、在线教育、远程技术支持这些场景,该系统把屏幕共享、实时视频流、消息通信和文件共享功能集成在一起,意在解决传统通信方式里操作繁琐、协作效率差以及信息不公开的问题。依靠直观的用户界面以及高效的功能整合,系统有效地提升了团队协作的便捷性与实时性,带动信息共享与工作效率增长,为用户赋予稳定、透明的远程通信体验。2.1.2使用范围系统针对需要实时通信的企业员工、教育领域从业者、技术支持人员等用户群体,管理员借助服务端界面开启屏幕共享,制作视频流供用户查看,并且对用户连接和数据记录实施管理。用户凭借客户端进入系统,要输入用户名跟密码完成验证,登录完毕后可发起或者观看视频流、发送讯息或共享文件,用户在界面可挑选联系人,传送文本消息或上传诸如文档、视频的文件,进而查看其他用户分享的东西,操作对应的流程为:用户登录成功后选取功能,系统实时响应操作,视频流、消息及文件传输任务完成后,用户可在结果页面查看对应的数据,信息透明无隐,可实现多人协作。2.2业务需求分析2.2.1需求分析实时音视频通信和文件共享系统意在契合远程协作的需求,适合用在企业会议、在线教育、远程监控等场景里,为用户缔造高效、透彻的沟通体验,就功能需求的层面,系统得实现支持屏幕共享实时视频流的传送、文本消息的交互和文件共享,用户借助客户端登录后,可发起或收看视频流、传递消息、上传或下载文档,同时查看在线用户列表以及共享内容。管理员借助服务端开启视频流,掌管用户连接事宜,保证信息记录精准无差错,性能需求提出视频流应实现低延迟、高清晰,消息响应实现秒级速度,文件传输坚实,可支持至少10个客户端一起并发,系统必须在常见设备上流畅操作,同时给出错误提示提高可靠性。用户需求针对的是企业员工、教育从业者等群体,用户期望操作简单好上手,清晰展现视频、消息及文件的状态,支持快速登录、选择联系人然后查看内容,管理员需方便地管理视频流以及用户状态,系统应具备多语言支持及数据隐私防护能力,保证通信的安全不被破坏。2.2.2主要业务流程图用户把客户端启动,来到登录界面,输入用户名跟密码,再点击“登录”,系统审视输入是否为空,提示‘用户信息不能是空的’,查询数据库以验证用户名与密码,若验证得以成功,呈现“登录成功”相关提示,实施连接初始化,把主界面打开同时隐藏登录界面,流程结束。要是验证失败了,显示“登录失败”相关提示,用户重新填入。登录流程图如图2-1所示。图2-1登录流程图用户登录客户端界面,走进主界面,选定消息接收方用户,在输入框输入消息后,点一下“发送”按钮,客户端把本地消息予以显示,采用发送消息到服务端的做法,若服务端接收未成功,客户端呈现“发送失败”提示。服务端把消息解析后转发到接收方客户端,接收方凭借接收消息,显示信息并更新档案。消息传递流程图如图2-2所示。图2-2消息传递管理流程图用户A在聊天界面的用户在线列表里面选择用户B发送文件,选定某一个文件后,客户端先把通知告知用户端B,用户端A首先把数据发送给服务端,由服务端中转转接发送给客户端B,客户端B把接收的文件保存起来。文件传输管理流程图如图2-3所示。图2-3文件传输管理流程图若用户点击“共享屏幕”按钮后,客户端最初启动屏幕采集和编码进程[9],且把编码后的屏幕内容推送至本地或指定的流地址处,客户端向服务端呈送共享屏幕请求,附上用户信息跟流地址,服务端把请求接收之后,告知目标用户存在屏幕共享可观看。目标用户完成点击“接收共享”操作后,客户端利用拉取RTSP流的途径进行解码,再显示远端用户的屏幕内容。屏幕共享流程图如图2-4所示。图2-4屏幕共享流程图2.3功能需求分析若从作用机理角度进行分析,该系统可被分割成五大核心模块:用户管理事宜、用户信息数据、文件操作举动、消息传递交流、实时屏幕共享模式。有关各个模块,下文将一个案例接着一个案例地详细说明。用户进行注册而后登录,管理员实施对用户信息的管理,校正用户的信息(密码,ID),该用例图刻画了用户使用系统时跟账号相关联的操作流程,系统要对用户身份开展验证,保障数据安全且完整,是系统实现正常运行的基础组成。用例图如图2-5所示。图2-5用户信息管理用例图用户管理模块含有管理员对用户信息的管理事宜,涵盖添加、撤销用户以及查看用户状态等操作,主要说明管理员对平台用户开展管理的操作流程,包括查看用户名册、查询用户详情、修改用户数据、冻结或去除用户账号等,该模块的作用是保障系统运行的规范及安全,阻挡恶意用户对系统环境的破坏。用例图如图2-6所示。图2-6用户管理用例图在文件传输模块里,用例有用户上传文件以及下载文件,支持文件进行安全的传输及存储,展现出用户相互进行文件发送及接收的全流程,用户可以选好聊天对象再选择本地文件,把文件发送出去,对方会收到提示,能抉择接受还是拒绝,文件传输成功结束后保存在本地,同时把记录保存到数据库,以便后续查询,用例图如图2-7所示。图2-7文件传输用例图共享屏幕模块涉及到用户发起屏幕共享这一动作,其他用户可实时接收和查看共享的内容,其过程有用户发起屏幕共享请求、接收方接到通知后选择是否接纳、共享内容实时传输、同步音频播放、共享终止等,该功能适合应用于远程教学、演示或协作场景,着重体现低延迟与高稳定性。用例图如图2-8所示。图2-8共享屏幕用例图消息传递模块当中,用例涉及用户利用系统相互发送即时消息,支持文本与多媒体内容的传送,用户选定聊天对象、键入文字后发送,对方接收消息后予以显示,双方聊天记录同步被存储到数据库等流程,支持在线状态的识别及头像的显示,实现稳定高效的实时通讯能力。用例图如图2-9所示。图2-9消息传递用例图2.4非功能需求分析2.4.1软硬件环境本项目开发采用的环境是Windows10,利用C++开发搭配Qt框架,依靠MySQL数据库管理数据,采用TCPSocket的编程方法,测试采用的环境是本地局域网,采用普通笔记本电脑充当硬件。2.4.2性能响应时间:处于局域网环境时运行稳定,消息传递大体上可实现秒级响应,文件传输出现的延迟不大,屏幕共享画面延迟被控制在可接纳范围内,实现实时通信要求。可扩展性:采用模块化架构的设计方案,客户端和服务端的功能是彼此分开独立的,便于后续把语音通话、多用户群聊等新功能集成进来,有着不错的扩展潜力值。资源利用率:整体上资源占用量不高,通信模块采用多线程技术增强效率,屏幕共享推流中对CPU占用的控制合理恰当,适宜在一般硬件环境中长时间开展运行。2.4.3安全性用户身份核实:系统依靠用户名与密码的登录机制开展身份校验,保证只有被认可的合法用户才可以访问通信功能,切实杜绝非法闯入。非法访问控制:服务端对请求数据开展基本校验与身份核对,防范恶意用户伪造身份实施操作,增进通信过程的安全水平。功能权限控制:系统把普通用户与管理员角色区分开,对不同角色可操作的功能范畴进行限制,防止角色越权访问,维护系统稳定运转。2.4.4并发性多用户并发:系统采用多线程的技术,支持多个用户在同一时间连接操作,在局域网的环境当中,多个用户可实时开展消息传达和文件传输,系统可高效应对并发请求,保障系统稳定与低延迟。事务处理:系统采用有效的事务管理模式,保障消息跟文件传输过程中的数据一致性,各个操作(例如发送消息、上传文件)皆为独立事务,保障成功及失败状态有明确反馈,防止数据受损。信息同步:系统借助实时通信协议保障信息同步,保障不同用户间的信息实现及时更新。消息传递及屏幕共享实现实时同步,不会出现延迟以及数据遗失,保障用户体验的连贯性。3系统设计3.1系统设计原则3.1.1简单性原则系统结构清晰可辨,模块分割清楚,功能的实现采用普遍的设计模式与通信机制,便于开展开发、维护及后期扩展事宜,减少开发的成本及复杂度。3.1.2可靠性和容错性原则系统采用异常处理手段,保障在网络出现波动、用户误操作时系统不会崩溃,关键功能支持对状态进行校验与给出错误提示,提高系统整体的稳定与容错能力。3.1.3灵活性原则系统采用模块化的设计布局,客户端和服务端功能实现分离解耦,具备功能独立扩展及替换能力,便于之后添加新功能,或按照不同场景需求作出调整优化。3.2系统总体设计本系统的设计涉及五大核心功能模块,分别为用户信息管理、用户管理、消息互通、文件传送以及屏幕分享,各模块彼此独立却又紧密配合,一起创建一个功能齐全、体验效果不错的实时通信平台。用户信息管理模块承担着用户与管理员注册、登录及信息修改的功能,用户登录之后可挑选身份类型进入相应的界面,而且借助数据库验证身份信息以及存取数据,用户管理模块主要服务的对象是管理员,支持对在线用户进行监控,以及对各类数据表(像用户表、聊天记录表、文件记录表、视频共享记录表)开展增删改查操作,保证系统数据的完整及可维护属性。消息传递模块实现出一对一文字聊天这项功能,支持查看聊天对象的头像,消息内容可实时显示,还把聊天记录写入数据库里,方便用户回溯翻阅,文件传输模块可实现文件的发送与接收功能,双方均可以弹窗形式提示接收,同时将文件的路径、文件名等信息保存进数据库实施管理。屏幕共享模块借助FFmpeg实现对视频内容的捕获、编码与传输工作,许可用户实时分享屏幕上的内容,接收一方可挑选接受或拒绝,系统同时记录共享开始时刻与结束时刻,保障功能的可追溯特性,整个系统的模块划分清楚,功能分工明确,为达成稳定、高效的通信服务筑牢了坚实后盾。具体内容如图3-1所示。图3-1总体设计结构图3.3各模块功能详细设计3.3.1用户信息模块(1)用户注册:用户输入用户名跟密码以后,客户端把注册的请求发送到服务器,服务端核实用户名是否重复,再写入数据库。(2)用户登录:用户凭借输入账号密码完成登录,服务端验证信息后反馈核实结果,若登录成功则进入主界面,失败的话就给出错误的提示。(3)信息查看功能:使登录后的用户可在界面查看自己的用户名,ID等类似信息,方便用户知悉自己基本信息情形。(4)信息修改功能:资料修改功能:用户可对密码等基础信息加以修改,把修改请求发送至服务器,服务端更新数据库中的数据并把修改结果返回。3.3.2用户管理模块(1)查看用户列表:管理员登录进去后可查看所有已注册用户的基础资料,涉及用户名、注册时间、权限类型等相关资料。(2)删除用户:管理员可删除那些不合规或异常的用户,系统会删掉该用户的数据库记录,接着断开连接。(3)修改用户信息:管理员可替用户修改相关信息,诸如密码、权限的类型,应用于账号异常或者身份变更这类特殊情形。3.3.3消息传递模块(1)实时消息发送:用户在聊天界面录入文字消息后点击发送,消息马上传至目标用户然后显示,支持单对单交流。(2)实时消息接收:系统依靠监听线程实时接收其他用户所发的消息,接收完成后自动于当前聊天窗口展示。(3)聊天记录显示:聊天消息在界面一直呈现,能滚动去查看,记录保存到内存或文件,便于用户查看历史对话内容。3.3.4文件传输模块(1)上传文件:用户选定好文件接着点击上传,客户端以数据流形式把文件传到目标用户手上,支持一般常见的文件类型。(2)下载文件:用户在收到文件请求之后点击“接收”,系统会把已完成传输的文件保存至本地指定目录。(3)文件接收提示:文件接收相关提示:倘若有用户发送文件,系统跳出接收提示框,用户可自行选择接收还是拒绝,优化交互的友好水平。3.3.5屏幕共享模块(1)发起屏幕共享:用户点击共享按键之后,客户端以FFmpeg为工具开启屏幕采集,再推送视频流到指定RTSP地址。(2)发送共享请求:目标用户把请求接收之后,客户端凭借拉流方式解码远程用户屏幕画面然后显示出来。(3)文件接收提示:若有用户发送文件,系统跳出接收提示的对话框,用户能够抉择接收还是拒绝,强化交互的友好体验。(4)停止共享:共享发起的一方点击“停止共享”,随后关闭FFmpeg推流进程,同时往服务端发送暂停共享的通知。3.4数据库设计3.4.1学生评优评奖管理系统E-R图本系统的ER图主要把用户表、聊天记录表、文件记录表和屏幕共享记录表作为四个核心实体,各实体利用主键实现唯一标识,相关表凭借外键构建起关联,若如聊天记录、文件记录以及屏幕共享记录都同用户表有关联,完成了用户跟通信数据多对多关系的管理,有利于数据库实现高效查询与维护操作,实体之间关系如图3-2所示。图3-2实时通讯系统系统E-R图3.4.2实体-属性图用户实体包含有4个属性,具体如图3-3所示。图3-3用户实体属性图聊天记录实体包含有5个属性,具体如图3-4所示。图3-4聊天记录实体属性图文件记录实体包含有4个属性,具体如图3-5所示:图3-5文件记录实体属性图视频流实体包含有4个属性,具体如图3-6所示。图3-6视频流实体属性图3.4.3数据表此系统主要有4个数据表,每个表的描述如表3.1所示。表3.1数据表描述数据表名数据表描述users记录用户相关信息Chats_record聊天记录相关信息Files_record传输文件记录相关信息Video_stream视频共享记录相关信息用户表users具有4个字段,如表3.2所示。表3.2用户表字段类型空默认注释id(主键)int(20)否用户唯一标识(key)namevarchar(255)否NULL昵称typeint(20)是NULL用户在线状态passvarchar(255)是NULL密码聊天记录表Chats_record具有5个字段,如表3.3所示。表3.3聊天记录表字段类型空默认注释Chat_id(主键)int否聊天记录唯一标识(主键)Send_idint否发送者ID(外键)receive_idint否接收者ID(外键)messagetext否消息内容Send_timeTimestamp否Current_Timestamp消息发送时间文件传输记录表File_record具有4个字段,如表3.4所示:表3.4文件传输记录表字段类型空默认注释File_idint否文件记录唯一标识(主键)Upload_idInt否上传者ID(外键)File_namevarchar否NULL文件名File_pathvarchar是NULL存储路径视频流表video_stream具有4个字段,如表3.5所示。表3.5视频流表字段类型空默认注释stream_idint否视频流会话唯一标识(主键)user_idInt否发起共享的用户ID(外键)Start_timeTimestamp否Current_Timestamp会话开始时间End_timeTimestamp是NULL会话结束时间4系统实现及应用效果4.1系统运行环境操作系统:系统开发与运行依托Windows10环境,能适配大部分个人电脑及办公设备。数据库:采用MySQL作为数据库管理系统,存放用户的各类信息、聊天产生的记录、文件传输留下的记录等数据。编程语言和框架:采用C++作为主要开发语言,保障系统实现高效、稳定的性能。依靠Qt框架开展GUI图形界面开发,可支持跨平台开展界面展示及用户交互工作。网络通讯:客户端和服务端通过TCP/IP协议进行数据通信,采用Socket编程实现消息传递、文件传输和屏幕共享功能。4.2核心项目目录文件结构以及说明服务端:ClassServer所含的头文件和ClassServer所含的源文件:C++的源代码文件夹,囊括了全部的源代码文件。ClassServer相关的对象文件:实施Qt项目管理的文件,含有项目的依赖各项配置、插件各项配置等,界定了项目的构建安排、编译选项与外部库的引用,保证项目可在QtCreator或其他开发环境里顺利搭建。如图4-1所示:图4-1服务端目录文件客户端同理,如图4-2所示:图4-2客户端目录文件4.3数据库的连接和访问的实现在singleton.p跟singleton.h里面,阐明了数据库连接的信息定义,做到了数据库连接配置事宜,不仅可以对数据库做添加、删除、改动、查找的基本操作,还可对数据库内的数据信息进行操作及管理。4.4系统实现模型图(类图)此系统囊括多个核心类,用以达成实时通讯的功能,Login类处理针对用户的登录验证,保证只有符合规定的用户能访问系统,MainWindow类充当用户交互界面,承担管理UI界面、传送和接收消息以及开启屏幕共享的工作,PullStream类的用途是拉取视频流然后进行处理,实现了跨平台视频传输的支持。QNChatMessage类体现为聊天消息,囊括消息内容和发送者的相关讯息,QTcpClient类承担起与服务器进行TCP连接的工作,应对消息的发送与接收事宜,ReadThread类掌管后台线程,实施异步任务,Singleton类依靠单例模式让系统的一些类仅有一个实例,防止重复实例化。以FFmpegSaveSimple为代表的其他辅助类,承担屏幕采集和视频编码处理任务,这些类凭借模块化设计协同配合,促使系统功能实现同时优化系统性能,还保障客户端跟服务端之间的高效通讯,此处选取了当中8个类,依次是MainWindow、TcpServer、FFmpegSaveSimple、PullStream、Singleton、QNChatMessage、QTcpClient和ReadThread。这几个类的总体结构图如图4-3所示:图4-3系统控制类图4.5系统测试与运行结果4.5.1登录管理员与普通用户输入信息完毕后,用户得选一下自己的身份角色,验证成功后才可以得到对应的子系统访问权限。登录界面如图4-4所示:图4-4登录界面4.5.2主界面在主界面采用与登录界面一致的主题色,用户可在旁边的名字列表里面查看在线用户名单,同时存在信息编辑框,诸如屏幕共享的功能按钮。主界面如图4-5所示:图4-5主界面4.5.3聊天功能用户完成登录后可在主界面查看在线用户列表,选择任一用户点击后可进入聊天窗口进行一对一消息交谈,聊天窗口有实时发送文字消息的能力,自动呈现出头像、昵称以及时间戳记,聊天内容及时更新并存入数据库里,用户可翻阅历史聊天记录,支持上下滚动去查阅。界面简明直白,消息传递稳定又顺畅,赋予沉浸式沟通体验,为系统核心的实时通讯功能。如图4-6所示:图4-6聊天功能界面4.5.4文件传输功能当用户想要给用户B发送一份文件时,用户A点进跟用户B对应的聊天窗口,按下发送文件选项,然后选定想要传送的文件,跟着就点击确认发送,文件会借助服务端中转,然后发送给目标用户。目标用户默认在当前阶段接收文件,(这里暂时保存一个默认地址项目自带的bin目录里,后续添加自定义功能,用户能自己点击判断是否接收文件)具体如图4-7所示:图4-7文件传输功能图4.5.5屏幕共享功能在聊天界面点击“屏幕共享”按钮,就可着手发起共享请求,对方获得弹窗形式的提示,按下“接受”选项后,实时接收发送方屏幕上的画面,并一同同步音频内容。共享的过程当中可全屏查看,也可随时点按“停止共享”,系统自动把每次共享的发起者、接收者和共享时长等信息予以记录,并添加到数据库里,供管理员实施查询动作,该功能在远程演示、教学、协作等场景适用,体验无阻、操作省事。具体如图4-8所示:图4-8屏幕共享功能界面4.5.5管理员功能(目前功能正处于测试期)目前只能借助测试台看到一些信息,发挥部分信息状态检测功效。管理员完成系统登录操作后,进入到后台管理界面,可从左侧菜单中选中“用户管理”“聊天记录”“文件记录”“共享记录”等功能模块,界面支持用表格样式展示数据,点击每条记录即可查看详细资料,管理员能开展删除、更新、搜索这些操作,可按条件对记录进行筛选。也可实时查看当下的在线用户列表,点选用户即可查看该用户的相关操作历史,做到高效、省事的系统运维管理。具体如图4-9,4-10所示:图4-9管理员功能界面图4-10用户状态查看图5总结与展望在进行本毕业设计的实现期间,一开始就把系统的用户界面和通信协议设计弄好了,进而成功达成了用户注册登录、即时消息传送及文件传输等核心功能。屏幕共享模块依靠集成FFmpeg技术,完成了本地屏幕数据的实时采集与压缩传输,维持了共享画面的流畅及同步状态,为了增进系统的性能跟响应水准,系统引入多线程此项技术,可靠支持了多用户同步通信,优化了整体运行的稳定性,就安全防护角度,系统采取用户身份验证、消息加密以及文件传输加密等基础手段,增进了数据传输阶段的安全防护能力,为用户设立了一个相对安全、可靠的局域网通信平台。虽然本系统已大体达成了预期的功能目标,但依旧存在一些改进的空间,系统在功能模块拓展上灵活性欠佳,未来还可进一步引入诸如语音通话、视频会议、消息离线存储等高级功能,为提升用户体验以及系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论