我们这个项目在同一届中算做的很好的了,之所以没有做到最好,是因为有两个技术点没有实现:
实在是没时间了,如果有后来者可以读懂我们这个项目,并且完善,相信可以拿到最好的成绩,没有之一。
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的前后端通信,以及中后期的项目整合。经过实践,本团队成功实现了注册,登录,以及各种功能,并且成功在云服务器上部署,运行,即使大家处在天南海北,也能实现多人聊天。