nlohman/jsoncpp (nlohman-json)
boost
asio
hiredis
mysql (mariadb)
mkdir build && cd build
cmake ..
make -j8
figlet
boxes
lolcat
./cli (服务器ip) 8080
支持服务端指定端口
./server 8888
./cli (服务器ip) 8888
- 实现登录、注册、注销
- 实现找回密码(提高)
- 实现好友的添加、删除、查询操作
- 实现显示好友在线状态
- 禁止不存在好友关系的用户间的私聊
- 实现屏蔽好友消息
- 实现好友间聊天
- 实现群组的创建、解散
- 实现用户申请加入群组
- 实现用户查看已加入的群组
- 实现群组成员退出已加入的群组
- 实现群组成员查看群组成员列表
- 实现群主对群组管理员的添加和删除
- 实现群组管理员批准用户加入群组
- 实现群组管理员/群主从群组中移除用户
- 实现群组内聊天功能
- 实现查看历史消息记录
- 实现用户间在线聊天
- 实现在线用户对离线用户发送消息,离线用户上线后获得通知
- 实现在线发送文件
- 实现在线用户对离线用户发送文件,离线用户上线后获得通知/接收
- 实现后台发送文件
- 实现用户在线时,消息的实时通知
- 收到好友请求
- 收到私聊
- 收到加群申请
- 使用 C++编程语言
- 使用 I/O 多路复用完成本项目
- C++:Epoll ET 模式
- 使用数据库完成数据存储
- Redis 和 mysql
- 历史消息采用redis做高速缓存,mysql来存储大量历史消息
- 数据库中数据的存储和取用使用序列化和反序列化完成(Json)
- 支持大量客户端同时访问
- 实现服务器日志,记录服务器的状态信息
- C/S 双端均支持在 CLI/Web 自行指定 IP:Port
- 实现具有高稳定性的客户端和服务器,防止在用户非法输入时崩溃或异常
- 实现 TCP 心跳检测