webim整体架构 - 思维导图
2020-07-24 09:41:28 13 举报
AI智能生成
webim 技术架构
作者其他创作
大纲/内容
redis数据结构
string
fd_1
uid_1
hash
uid_1_web
client_type
web
random_string
10000-99999
fd
1
token
md5(uid+web+random_string)
uid_1_linux
client_type
linux
random_string
10000-99999
fd
3
token
md5(uid+web+random_string)
uid_1_profile
recent_contact
{"45":"user", "34":"group"}
uid_1_message
message_mark
uid_1_async
recent_contact
false
message
false
set
uid_1_fds
1
3
API接口
用户资料,最近联系人或群组(进入聊天界面初始化需要的数据)
好友列表(点击我的好友)
我的群组(点击我的群组)
我的收藏
我的资料:昵称,头像,简介(点击设置->个人资料)
上传头像图片
更新登录用户资料:比如昵称,生日,签名
推送消息
查找好友
默认随机数据
关键字搜索列表 + 分页
查找群组
默认热门top10
关键字搜索列表 + 分页
系统消息
消息列表(添加/被添加好友,添加/被添加群组情况,其他一些系统通知)
添加好友:同意,拒绝
添加群:同意,拒绝
系统通知
查看消息详情
点击好友
与该用户最近10条聊天记录
加载更多聊天记录
好友的用户资料:昵称,生日,签名
消息编辑
获取表情列表
上传文件
发送
功能学习
前后分离搭建
Restful API
官方文档
weixi
认证
速率控制
多表数据返回测试
Vue学习
vuejs基础视频
vue开发脚手架搭建
element-ui简单测试
websocket学习
swoole
js websocket
消息队列
rabbitmq
work queue (task)
使用场景:将存储的消息同步到数据库
publish/subscribe
场景:群消息推送
NoSQL
redis
string
hash
set
业务逻辑流程
注册
登录邮箱验证
跳转激活
激活成功跳转登录界面
登录成功
跳转 聊天界面
默认点击最近联系人
自动请求最近联系人数据
点击其中一位联系人
请求最近与该联系人最新聊天记录10条
点击更多
请求10条记录
点击表情
请求所有可用表情数据
点击发送文件
请求文件上传接口
点击发送
请求发送用户聊天消息接口
点击查看资料
请求查看用户资料接口
点击好友列表
API请求所有好友和好友分组文件夹列表数据
点击其中一个用户
请求查看用户资料接口
点击发送消息
自动跳转到最近联系人列表
输入关键字搜索所有好友, 回车
点击+号
弹出搜索平台所有用户界面
输入关键字,回车
请求根据关键字查询昵称或者邮箱对应的用户分页列表
点击群组列表
API请求所有群组列表
点击一个群
请求查看群组资料接口
点击发送消息
自动跳转到最近联系人列表
输入关键字搜索自己的所有群组,回车
点击+号
我的收藏
我的笔记
设置
意见反馈
5-100个字符的意见建议
个人资料
点击编辑
进入编辑状态:昵称,简介,性别,出生日期
点击提交
请求更新个人资料接口
关于我们
名称,简介,联系方式,github地址
开发流程
注册
界面
api
功能
登录
界面
api
功能
聊天窗口
界面组件化
添加好友
查询好友
添加好友申请
系统通知
通知列表
同意拒绝操作
我的好友
好友列表数据
后端查询好友列表接口
(数据放到redis中,因为推送聊天消息时,会有好友的频繁验证)
(数据放到redis中,因为推送聊天消息时,会有好友的频繁验证)
前端axios请求api接口显示内容
查看好友资料
后端数据库查询好友资料接口
前端axios请求api接口显示内容
发送消息
历史聊天记录
加载更多
后端查询消息记录API接口
前端axios请求并显示内容
表情加载
openmoji
表情展示和传输
发送消息
前端调用ws发送接口
消息发送情况
后端rabbitmq消息队列记录并实现发送ack情况
0 条评论
下一页