直播间机器人设计方案
设计目标
1:模拟一定人数在房间,保证房间的人气
2:不同时段房间内房间机器人的人数要有波动,防止人数不真实
3:支持房间内做活动,需要临时增加大批量的用户
4:机器人不能出现大批量进入房间,大批量退出房间的情形
设计流程

1:增加robot进程进行通知机器人进入房间退出房间的处理
2:设计给机器人分配特定的号段区间 (例如:850000000-860000000)
2:robot进程读取配置文件,获取房间信息,以及房间的机器人配置信息流程
4:如有讲师在麦上,robot服务定时判断真实人数和在线人数的比例公式,判断是否需要增加或减少机器人,如果需要,则发起信令请求,消息流为:
robot->usermgrsvr->gateway->roomsvr
5:房间服务器获取到加入房间请求后,判断当前的最大机器人ID,然后从最大的机器人ID
往上累加,获取最新的机器人ID。(如果达到最高的配置860000000,则从最低850000000开始循环)。然后根据新增加机器人ID,做加入房间的处理.
6:房间服务器获取到退出房间的请求后,判断当前的最小机器人ID,然后删除指定的机器人数量
7: 如果没有讲师在麦上,robot服务逐步删除房间内的机器人,发起信令请求, 消息流为:
robot->usermgrsvr->gateway->roomsvr,房间服务器处理为第6部。
配置文件
robot配置文件robot.conf如下信息:
[roomlist] #房间列表配置
Roomid=60001,60002,60003
[onlineparam]
onlinenum=20 #机器人基础在线人数
onlinerate=1-200:30;201-500:20;501-2000:10;2001-1000000000:5 #机器人数比率
假设M为真实的在线总人数
当1<=M<=200时
Totalonline = onlinenum + M * 30
当200<M<=500时
Totalonline = onlinenum + 200 * 30 + (M-200) * 20
当500<M<=2000时
Totalonline = onlinenum + 200 * 30 + 300 * 20 + (M-500) * 10
当2000<M<=1000000000时
Totalonline = onlinenum + 200 * 30 + 300 * 20 + 500 * 10 + (M-500) *5