CPP集群聊天服务器开发实践(三):群组聊天业务

目录

1 总体架构设计

2 数据层

3 业务层

在之前业务的基础上继续进行完善,主要针对群组相关的业务增加了创建群组、加入群组、以及发送群聊消息的功能。

开始之前,需要在数据库中创建两个表:allgroup 和 groupuser。allgroup主要用于保存所有群组信息,包括群组id、群组名称、群组描述;groupuser主要用于保存用户与群组的关系以及用户的角色,包括用户id、群组id、用户角色。


mysql> desc allgroup;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int          | NO   | PRI | NULL    | auto_increment |
| groupname | varchar(50)  | NO   | UNI | NULL    |                |
| groupdesc | varchar(200) | YES  |     |         |                |
+-----------+--------------+------+-----+---------+----------------+

mysql> desc groupuser;
+-----------+--------------------------+------+-----+---------+-------+
| Field     | Type                     | Null | Key | Default | Extra |
+-----------+--------------------------+------+-----+---------+-------+
| groupid   | int                      | NO   | PRI | NULL    |       |
| userid    | int                      | NO   | PRI | NULL    |       |
| grouprole | enum('creator','normal') | YES  |     | normal  |       |
+-----------+--------------------------+------+-----+---------+-------+

1 总体架构设计

沿用之前的设计思路,将数据层和业务层进行区分开:

数据层主要负责对象的封装以及数据库的交互,包括群组对象的封装、群组成员的封装、创建/加入/查询群组;

业务层则负责与客户端的交互,包括创建群组业务、加入群组业务、群组聊天业务。

2 数据层

  1. 对象的封装

主要封装群组对象{群组id 群组名称 群组描述 组内成员}以及相关接口、组内成员对象{成员信息 角色}。

群组对象的封装在group.hpp中实现:

#ifndef GROUP_H
#define GROUP_H
#include <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值