项目简介
本项目是基于C++和Nginx的分布式聊天系统,借助Nginx实现TCP负载均衡,采用Redis作为消息队列,MySQL作为数据库。系统具备用户登录、注册、添加好友、创建群组、加入群组、一对一聊天、群聊天以及注销等功能。
项目的主要特性和功能
- 用户管理:支持用户登录、注册、注销操作,能管理用户在线/离线状态。
- 好友管理:可添加好友,查询好友列表。
- 群组管理:可以创建群组、加入群组,查询群组列表及成员。
- 消息管理:支持一对一聊天和群组聊天,能存储与查询离线消息。
- 分布式支持:利用Nginx进行TCP负载均衡,借助Redis实现消息发布订阅。
安装使用步骤
环境配置
- 安装Nginx并配置TCP负载均衡:安装Nginx后,编辑配置文件
nginx.conf
,添加如下TCP负载均衡配置: ```nginx stream { upstream MyServer { server 127.0.0.1:6000 weight=1 max_fails=3 fail_timeout=30s; server 127.0.0.1:6002 weight=1 max_fails=3 fail_timeout=30s; }
server {
proxy_connect_timeout 1s;
listen 8000;
proxy_pass MyServer;
tcp_nodelay on;
}
}
2. **安装Redis的C++库hiredis**:
bash
cd hiredis
make
sudo make install
sudo ldconfig /usr/local/lib
```
编译项目
- 自动编译:运行项目根目录下的脚本文件
auto_build.sh
。 - 手动编译:
- 进入项目根目录下的
build
目录:bash cd build
- 使用CMake生成Makefile:
bash cmake ..
- 编译项目:
bash make
- 进入项目根目录下的
启动服务器
在项目根目录下运行编译生成的可执行文件,传入IP地址和端口号作为参数,示例如下:
bash
./chatserver 127.0.0.1 8000
使用客户端
- 连接服务器:运行客户端程序,输入服务器的IP地址和端口号进行连接,示例如下:
bash ./chatclient 127.0.0.1 8000
- 功能操作:可进行用户登录、注册、添加好友、创建群组、加入群组、一对一聊天、群聊天以及注销等操作。通过命令行输入指令,程序解析指令并发送给服务器进行处理,然后接收服务器返回的消息并展示给用户。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】