• 北理工计科小学期Qt聊天室:WeTalk——基于云服务器与QML前端的多人广域网即时聊天软件


    我们这个项目在同一届中算做的很好的了,之所以没有做到最好,是因为有两个技术点没有实现:

    1. 服务器多线程并发。没有多线程并发,服务器的负载能力就非常有限,如果很多人同时发大量的消息,就会崩溃。
    2. 文件传输。只是把按钮做出来了,对应的处理函数还没做,不过我已经给出了架构图。
      在这里插入图片描述

    实在是没时间了,如果有后来者可以读懂我们这个项目,并且完善,相信可以拿到最好的成绩,没有之一。

    请到github仓库或者百度云下载

    github:WeTalk
    百度云:WeTalk 提取码 cyyy

    项目概述

    效果

    本项目旨在设计一款基于QtQuick,QML,Qt,SQLite和云服务器的支持广域网的聊天应用,为用户提供方便快捷的远程通信和自由交友,能够跨越距离的限制,能够在办公,娱乐,日常生活等多场景下使用,时刻保持信息畅通。在项目中我们主要借鉴了QQ和Wechat的相关功能进行开发。

    请添加图片描述

    请添加图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    架构

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    需求分析

    在互联网时代,依靠电话和短信的通信手段,远远满足不了人们的需求且效率较低,成本较高,在许多场景下,需要文件和多人信息传输,此外,生活水平的日益提高,人们对于交友和娱乐的追求也随之提高,为此我们开发了WeTalk应用,支持自由交友,广域网连接,建立群聊,好友单聊,设计个人名片等能够为人们日常生活,办公提供便利的功能。

    运行环境

    客户端:Windows/Linux/Mac
    服务端:Ubuntu 20.04 LTS

    项目设计

    项目分成客户端、服务器端和数据库端,其中服务器端放在公网下的云端服务器上,达到公网即时通讯的目的。项目系统的整体架构和各架构下的内容如图2-1所示,以服务器端为开发中心,连接三个部分的通讯。
    开发过程采用前后端分离技术,并写好对应的接口函数和信号,最后合并时进行连接调整。这有利于我们分别独立进行开发,分工明确,开发效率高。

    本人负责通信模块与架构。本团队在最开始就打算做广域网即时通信,所以一个好的架构尤为重要。

    经过一天的学习,借鉴,思考,我得出了基于Udp报文+Json命令解析的服务器中转模式,其中,不同类型的命令Json报文中,其command参数都不同,对应不同的函数调用。

    除此之外,本团队使用QML技术作为前端,这加大了通讯的难度,我除了客户端与服务端的通信以外,还负责QML的前后端通信,以及中后期的项目整合。经过实践,本团队成功实现了注册,登录,以及各种功能,并且成功在云服务器上部署,运行,即使大家处在天南海北,也能实现多人聊天。

  • 相关阅读:
    【web前端期末大作业】基于html+css+javascript+jquery技术设计的音乐网站(44页)
    记一次Spark报错:Failed to allocate a page (67108864 bytes), try again.
    android View和ViewGroup创建以及绘制流程
    力扣32. 最长有效括号
    基于C语言仿真实现的粒子火焰系统
    java计算机毕业设计家教管理系统MyBatis+系统+LW文档+源码+调试部署
    园区组网配置实例
    HTML5期末考核大作业 基于HTML+CSS+JavaScript沪上美食(9页)
    OMV6 安装Extras 插件失败的解决方法
    数据结构 之 优先级队列(堆) (PriorityQueue)
  • 原文地址:https://blog.csdn.net/weixin_50295745/article/details/126539588