# muduo_chat_server **Repository Path**: leehaunan/muduo_chat_server ## Basic Information - **Project Name**: muduo_chat_server - **Description**: 使用muduo网络库开发的集群聊天服务器,muduo库部分可完全替换为作者仓库中的ee_muduo - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-01-17 - **Last Updated**: 2024-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # muduo_chat_server #### 介绍 基于muduo网络库的集群聊天服务器 #### 相关技术和工具 muduo库、Redis发布-订阅消息队列、Nginx长连接TCP负载均衡(基于权重轮询)、 JSON(数据序列化和反序列化)、MySQL CMake构建、Linux Shell输出自动编译脚本 #### 消息日志 LOGIN_MSG = 1, //登录消息1 LOGIN_MSG_ACK, //登录响应消息2 LOGINOUT_MSG, //注销消息3 REG_MSG, //注册消息4 REG_MSG_ACK, //注册响应消息5 ONE_CHAT_MSG, //一对一聊天消息6 ADD_FRIEND_MSG, //添加好友消息7 CREATE_GROUP_MSG, //创建群组8 JOIN_GROUP_MSG, //加入群组9 GROUP_CHAT_MSG, //群聊天10 #### 数据库表设计 -- user +----------+--------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | NO | UNI | NULL | | | password | varchar(50) | NO | | NULL | | | state | enum('online','offline') | YES | | offline | | +----------+--------------------------+------+-----+---------+----------------+ -- friend +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | userid | int(11) | NO | PRI | NULL | | | friendid | int(11) | NO | PRI | NULL | | +----------+---------+------+-----+---------+-------+ -- allgroup +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | groupname | varchar(50) | NO | UNI | NULL | | | groupdesc | varchar(200) | YES | | | | +-----------+--------------+------+-----+---------+----------------+ -- groupuser +-----------+--------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------------------+------+-----+---------+-------+ | groupid | int(11) | NO | PRI | NULL | | | userid | int(11) | NO | PRI | NULL | | | grouprole | enum('creator','normal') | YES | | normal | | +-----------+--------------------------+------+-----+---------+-------+ -- offlinemessage +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | userid | int(11) | NO | | NULL | | | message | varchar(500) | NO | | NULL | | +---------+--------------+------+-----+---------+-------+ #### 工具版本以及如何运行 CMake 3.10.2、gcc 7.5.0、Ubuntu 18.04 在build目录下进行cmake.. && make,或者运行自动编译脚本autobuild.sh