littlebot
Published on 2025-04-12 / 1 Visits
0

【源码】基于C++和Nginx的分布式聊天系统

项目简介

本项目是基于C++和Nginx的分布式聊天系统,借助Nginx实现TCP负载均衡,采用Redis作为消息队列,MySQL作为数据库。系统具备用户登录、注册、添加好友、创建群组、加入群组、一对一聊天、群聊天以及注销等功能。

项目的主要特性和功能

  1. 用户管理:支持用户登录、注册、注销操作,能管理用户在线/离线状态。
  2. 好友管理:可添加好友,查询好友列表。
  3. 群组管理:可以创建群组、加入群组,查询群组列表及成员。
  4. 消息管理:支持一对一聊天和群组聊天,能存储与查询离线消息。
  5. 分布式支持:利用Nginx进行TCP负载均衡,借助Redis实现消息发布订阅。

安装使用步骤

环境配置

  1. 安装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 ```

编译项目

  1. 自动编译:运行项目根目录下的脚本文件auto_build.sh
  2. 手动编译
    • 进入项目根目录下的build目录: bash cd build
    • 使用CMake生成Makefile: bash cmake ..
    • 编译项目: bash make

启动服务器

在项目根目录下运行编译生成的可执行文件,传入IP地址和端口号作为参数,示例如下: bash ./chatserver 127.0.0.1 8000

使用客户端

  1. 连接服务器:运行客户端程序,输入服务器的IP地址和端口号进行连接,示例如下: bash ./chatclient 127.0.0.1 8000
  2. 功能操作:可进行用户登录、注册、添加好友、创建群组、加入群组、一对一聊天、群聊天以及注销等操作。通过命令行输入指令,程序解析指令并发送给服务器进行处理,然后接收服务器返回的消息并展示给用户。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】