工作在nginx tcp负载均衡环境中的集群聊天服务器和客户端代码源码 基于muduo库实现 redis mysql
编译方式 cd build rm -rf * cmake .. make
#Mysql表设计 User表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
id | INT | 用户id | PRIMARY KEY、AUTO_INCREMENT |
name | VATCHAR(50) | 用户名 | NOT NULL,UNIQUE |
password | VARCHAR(50) | 用户密码 | NOT NULL |
state | ENUM('online','offline') | 当前登录状态 | DEFAULT 'offline' |
Friend表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
userid | INT | 用户id | NOT NULL、联合主键 |
friend | INT | 好友id | NOT NULL、联合主键 |
AllGroup表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
id | INT | 组id | PRIMARY KEY、AUTO_INCREMENT |
groupname | VARCHAR(50) | 组名称 | NOT NULL |
groupdesc | VARCHAR(200) | 组功能描述 | DEFAULT '' |
GroupUser表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
groupid | INT | 组id | NOT NULL、联合主键 |
userid | INT | 组员id | NOT NULL、联合主键 |
groupid | ENUM('creator','normal') | 组内角色 | DEFAULT 'normal' |
OfflineMessage表
字段名称 | 字段类型 | 字段说明 | 约束 |
---|---|---|---|
userid | INT | 用户id | NOT NULL |
message | VARCHAR(50) | 离线消息 | NOT NULL |
stream{
upstream MyServer {
server ip地址:端口 weight=1 max_fails=3 fail_timeout=30s;
server ip地址:端口 weight=1 max_fails=3 fail_timeout=30s;
}
server{
proxy_connect_timeout 1s;
listen 8000;
proxy_pass MyServer;
tcp_nodelay on;
}
}