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、微信小程序 |
以下是简化后的消息推送流程图,可以大致体现出每个组件之间的关系:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容