Linux下实现聊天室

聊天室

项目需求

账号管理

  • 实现登录、注册、注销
  • 实现找回密码(提高)

好友管理

  • 实现好友的添加、删除、查询操作
  • 实现显示好友在线状态
  • 禁止不存在好友关系的用户间的私聊
  • 实现屏蔽好友消息
  • 实现好友间聊天

群管理

  • 实现群组的创建、解散
  • 实现用户申请加入群组
  • 实现用户查看已加入的群组
  • 实现群组成员退出已加入的群组
  • 实现群组成员查看群组成员列表
  • 实现群主对群组管理员的添加和删除
  • 实现群组管理员批准用户加入群组
  • 实现群组管理员/群主从群组中移除用户
  • 实现群组内聊天功能

聊天功能

对于 私聊和群组 的聊天功能均需要实现:

  • 实现查看历史消息记录
  • 实现用户间在线聊天
  • 实现在线用户对离线用户发送消息,离线用户上线后获得通知
  • 实现文件发送的断点续传
  • 实现在线发送文件
  • 实现在线用户对离线用户发送文件,离线用户上线后获得通知/接收

服务器

1.使用epoll监听套间字,使用epoll监听客户端是否有读操作,如果有读操作,就将该套间字从监听红黑树摘下,然后读取客户端发送的要执行的操作,将操作放入线程池队列中执行,等操作执行完再将套间字放到监听红黑树上。

2.ET边沿触发模式

3.使用redis数据库

4.使用nlohmann/json序列化和反序列化

5.使用线程池对任务进行处理

客户端

1.使用两个线程,一个线程从服务器读取数据,实现弹窗功能,即有人添加好友或有人发送消息会有一个消息提示。
2.聊天的时候创建一个新线程,一个线程专门用来发送消息,一个线程专门用来读取消息。聊天结束后读取的线程自动销毁。

代码github地址

https://github.com/c1336658570/task/tree/main/chatroom

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小林疋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值