# MyChat **Repository Path**: hj0925/chat-server ## Basic Information - **Project Name**: MyChat - **Description**: 一个可以在nginx的TCP负载均衡下工作的集群聊天系统的服务器与客户端代码实现(基于muduo redis(作为中间件)) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-11 - **Last Updated**: 2023-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README MyChat 介绍 一个可以在nginx的TCP负载均衡下工作的集群聊天系统的服务器与客户端代码实现(基于muduo redis(作为中间件)) 安装教程 1. cd ~/Chat/build 2. rm -rf * 3. make 或者 1. ./autobuild.sh 使用说明 1. cd ~/bin 2. 服务器启动:./ChatServer ip port 3. 客户端启动:./ChatClient ip port 参与贡献:HJ独立完成 运行须知: 1. 该项目由C++编写,运行需要配置好g++或类似环境。 2. 该项目使用到的库有 muduo,json(项目附有),hiredis,mysqlclient,pthread。 3. 该项目服务器使用到了nginx的TCP负载均衡,需要配置好才能运行。 ngnix的TCP负载均衡模块配置: stream{ upstream Myserver{ server 127.0.0.1:6001 weight=1 max_fails=3 fail_timeout=30s; server 127.0.0.1:6002 weight=1 max_fails=3 fail_timeout=30s; } server{ listen 6000; proxy_pass Myserver; } MySQL表结构: User表: +--------+--------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | name | varchar(50) | NO | UNI | NULL | | | passwd | varchar(50) | NO | | NULL | | | state | enum('online','offline') | YES | | offline | | +--------+--------------------------+------+-----+---------+----------------+ Friend表: +----------+------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+------+------+-----+---------+-------+ | userid | int | NO | PRI | NULL | | | friendid | int | NO | PRI | NULL | | +----------+------+------+-----+---------+-------+ AllGroup表: +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | groupname | varchar(50) | NO | UNI | NULL | | | groupdesc | varchar(200) | YES | | | | +-----------+--------------+------+-----+---------+----------------+ GroupUser表: +-----------+--------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------------------+------+-----+---------+-------+ | groupid | int | NO | PRI | NULL | | | userid | int | NO | PRI | NULL | | | grouprole | enum('creator','normal') | YES | | normal | | +-----------+--------------------------+------+-----+---------+-------+ OfflineMessage表: +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | userid | int | NO | | NULL | | | message | varchar(500) | NO | | NULL | | +---------+--------------+------+-----+---------+-------+