一个基于C++和GO开发的分布式即时通讯系统,采用客户端-服务器架构,提供实时消息传递、用户管理等功能。
- 🔐 用户认证
- 用户注册
- 用户登录
- 💬 即时通讯
- 私聊消息
- 群组消息
- 消息历史记录
- 👥 用户关系管理
- 好友添加/删除
- 好友列表管理
- 用户在线状态显示
- ⚙️ 系统设置
- 个性化设置
- 消息通知设置
- 界面主题设置
- C++ 17
- Qt 6.7.3
- Protocol Buffers v5.29.3
- CMake 构建系统
- Golang 1.23.3
- Consul
- Mysql
- Redis
- Protocol Buffers v5.29.1
- protoc-gen-go v1.36.0
- C++ 17+
- CMake 3.10+
- Qt 6.7.3+
- Golang
- Mysql
- Redis
- Consul
- 编译客户端
- 在CmakeLists中指定Qt安装的路径
- 安装Protobuf和spdlog
- 执行编译
cd Client
mkdir build && cd build
cmake ..
make
- 编译服务器
- 依次进入Gate、User和Message目录
- 安装模块依赖
go mod tidy
- 执行编译
go build
- 启动Conusl、Mysql和Redis
- 执行init.sql,导入数据库
- 依次进入后端目录,在
config.yaml
中提供数据库连接等信息 - 在
User/config.yaml
中设置邮箱SMTP服务 - 启动所有服务
- 开启客户端
IM/
├── Client/ # 客户端代码
│ ├── include/ # 头文件
│ ├── model/ # 数据模型
│ ├── proto/ # 协议定义
│ └── resource/ # 资源文件
├── Server/ # 服务器代码
│ ├── Gate/ # 网关服务器
│ ├── User/ # 用户服务器
│ └── Message/ # 消息服务器