• 北理工计科小学期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的前后端通信,以及中后期的项目整合。经过实践,本团队成功实现了注册,登录,以及各种功能,并且成功在云服务器上部署,运行,即使大家处在天南海北,也能实现多人聊天。

  • 相关阅读:
    Hive怎么调整优化Tez引擎的查询?在Tez上优化Hive查询的指南
    02.Spring Boot入门案例
    matlab调用python自定义函数模块进行数据分析总结
    【iOS开发】iOS App的加固保护原理:使用ipaguard混淆加固
    webpack优化篇(五十):使用动态 Polyfill 服务
    Vuex的基本使用
    李永乐线代笔记
    2022年5月20日最全摸鱼游戏导航
    【ElementUI优化】el-table展开行 ==> :expand-row-keys=“expands“ 刷新表格,保存当前操作展开行
    算法设计(一) : 搜索算法实现八皇后问题
  • 原文地址:https://blog.csdn.net/weixin_50295745/article/details/126539588