RTC技术方案图
2019-07-02 20:04:21 0 举报
方法
作者其他创作
大纲/内容
app rtc stdk
验证成功
rtc server
请求加入im聊天室
用户退出语音房间
清除下麦列表成功/失败
加入房间
语音聊天室
当前加入人数是否大于100
小组组长
组员申请加入语音聊天室
put请求
1. 组长2. 小组成员1 : 状态3.
app peppa
推送terminate消息
rtc-svr
离开房间成功
请求踢人
否
验证权限、参数
退出im聊天室
用户离开房间的rtc服务端回调通知
请求上麦
rtc server wrapper
roomId
rtc-error
离开房间异步通知
terminated
聊天室id:聊天室用户列表
请求踢麦
im
app rtc sdk wrapper
清除成功/失败
app biz
on the Mac
下麦
返回客户端token
2. 占用位置状态:等待加入
peppa(api/rpc)
加入房间成功/失败
给被踢人发送被踢出的消息
聊天室个数是否超过限制
leave
返回token
异步检查
biz server
从上麦列表中去除该用户
关闭成功
返回conv_id
rtc server wrapper monitor
组长
告知离开房间
创建成功
加入结果
被踢人接收到消息
OnUserOffline
更新加入房间状态成功/失败
告知加入房间成功
关闭推流
验证权限
voip_api
根据加入的时间戳判断此次离开是否对应当前加入是则执行清理过程
验证上麦资格
去除下麦成功
error
生成room id
是否可以加入语音聊天室
该用户占用一个聊天位,状态:等待加入语音
给被踢人发送被下麦的消息
N
获取token
断流
Init
业务服务端组长关闭语音聊天室
检查语音聊天室状态是否成创建,否则清理im数据
去除小组成员1的记录
房主
退出成功
token
下麦成功/失败
推送消息给所有用户
告知该用户聊天室加入结果
发送延时消息,延时检查是否上麦成功
设置语音聊天室状态为待创建
生成上麦列表
告知加入房间结果
成功:更新此人加入状态失败:删除标记位;从im中删除此人
是
退出成功/失败
被踢下麦人接收到消息
小组id:聊天室ids
成功:设置状态为上麦成功失败:清除占位
告知聊天室创建成功
加入im成功/失败
rtc server
从上麦列表中删除给所有人发消息此人已下麦
1. 从im中删除2. 若在上面列表中,则从上麦列表中删除
参数校验
清理成功/失败
1. 加锁
rtc joinRoom
业务客户端
若在上麦列表中则从上麦列表中去除该用户
请求关闭语音聊天室
1. 请求RTC获取聊天室内成员列表2. 请求RTC关闭聊天室内所有成员的推拉流
小组成员1
告知用户退出了语音房间(可能冗余)
若加入失败:退出房间
踢人成功/失败
退出房间
创建房间
上报加入是否成功
请求成功?
若加入im成功,则1. 标记此人状态为待加入语音聊天室2.defer 检查status
房主信息
聊天室id:上麦用户列表
创建Im
上报下麦成功
认为退出成功
userid/roomid
如果此人状态还为待加入且此人状态更新时间戳等于消息检查中的时间戳从im中删除此人
接受到延时检查消息
请求对某人断推流
1. 组长2.3.
1.验证权限2.验证个数
从im中删除
收到消息后,检查当前小组成员1的加入状态,如果仍为等待加入,则去除该用户对位置的占用
聊天室1聊天室2聊天室n
获取rtc token以加入房间,req:uid + conv_id
清理过程
组长申请创建语音聊天室
服务端异步发送nsq/rocket延时5秒消息
离开房间
rtc-sdk 断流
加入失败
从im群聊中删除该用户
1. 对业务存储的聊天室用户列表加锁
发送延时检查状态消息
上麦结果
加入语音聊天室
退出群聊人数减一
app rtc sdk
小组成员2
人数不超过10人时将该用户加入到上麦列表中状态为待上麦
上报下麦
上报上麦结果
检查改用户是否加入语音聊天室成功,否则清理改用户
创建Redis存储
设置状态成功,小组挂聊天室成功
人数小于100人限制时,将此人加入im聊天室
发送延时消息,延时检查语音聊天室是否建立成功
业务服务端成员加入语音聊天室
断推流
打开推流
发送延时消息,延时检查该用户是否加入语音聊天室成功
Y
验证人数是否到100
加入房间结果上报业务服务端
可以上麦
业务服务端组长建立语音聊天室
返回错误
退出成功情况下上报
拒绝加入
成功:设置状态为成功失败:清除占位
请求加入聊天室
检测到用户断连,回调业务服务端
告知下麦
退出
RTC服务端
创建房间自动上麦
给所有人发消息此人已离开
on The Mac
on the call
检查状态,如果还是待上麦则在上麦列表中去除
下麦成功
上报下麦
踢人结果
从上麦列表中删除(如果上麦了)给所有人发消息此人已离开
2. 占用列表中一个位置
组长上麦成功后再请求创建语音聊天室
组长关闭语音聊天室
获取rtc token以建立房间,req:uid + conv_id
从上麦列表中删除
1. 推送关闭聊天室的消息给所有成员2. 删除存储
被T的人
断推流成功
join请求
3. 加入成功更新为已加入状态
业务svr
0 条评论
下一页