03-数据库和架构设计

1. 技术选型

后端框架:Springboot、Netty、Mybatis-plus、Jwt

前端框架:Vue、Uniapp、Webrtc

2. 开源组件

组件

是否必须

主要作用

mysql

存储用户、群聊、消息等数据

redis

数据缓存、消息队列

minio

存储文件,如头像、图片、语音、文件

coturn

音视频通话时用于协助打洞和转发

3. 数据库设计

表名

表名(中文)

创建时机

说明

im_user

用户表

用户注册

记录用户基本信息

im_friend

好友表

添加好友

记录好友关系以及好友的昵称、头像

im_private_message

私聊消息表

发送私聊消息

记录与好友之间的聊天消息

im_group

群组表

创建群组

记录群组信息

im_group_member

群组成员表

邀请好友进群聊

记录群组中的成员信息

im_group_message

群聊消息表

发送群聊消息

记录与群聊中的聊天消息

im_sensitive_word

敏感词

后台创建

发送消息时如果匹配敏感词会变成’**’

4. 项目结构

模块

功能

可运行

说明

im-platform

业务平台服务

负责接收前端的http请求,处理盒子IM的所有业务

im-server

消息推送服务

仅实现消息推送,不参与任何业务。其他服务(im-platform)需通过im-client与im-server通信

im-client

消息推送sdk

集成到其他服务(im-platform),使其能够与im-server通信,实现消息推送

im-common

公共包

被所有后端模块引用

im-web

web页面

web端页面

im-uniapp

app页面

移动端页面,包括app、h5、微信小程序

以下是简化后的消息推送流程图,可以大致体现出每个组件之间的关系:

5ed225ea2120250831134446

 
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容