将超级管理员添加到直播间的方法 - Java 代码解析
该方法 intoLiveRoomSuperadmin 用于将一个超级管理员添加到一个直播间中。方法接收两个参数:moveId 代表房间号,superadmin 代表超级管理员对象。
代码解释:
-
检查房间是否存在: 首先,方法使用
synchronized关键字对allMoveIdToUserIdListMap进行同步,确保只有一个线程可以同时访问该集合。方法检查allMoveIdToUserIdListMap中是否包含传入的房间号moveId。如果不存在,则说明该房间号不存在,方法返回-11。 -
检查管理员是否已存在: 如果房间号存在,方法获取房间对应的用户列表
userIdList,并遍历列表检查管理员的superId是否已存在。如果管理员已存在,方法返回-12。 -
将管理员添加到房间: 如果管理员不存在,方法将管理员的
superId添加到userIdList中。 -
将管理员添加到全局管理员集合: 接着,方法使用
synchronized关键字对allSuperadminMap进行同步,确保只有一个线程可以同时访问该集合。方法将管理员对象superadmin添加到allSuperadminMap中。 -
检查管理员是否在线: 最后,方法调用
ExternalCommunicationKit.existUser(moveId)方法检查管理员是否在线。如果在线,方法返回0;否则,方法返回-20。 -
异常处理: 如果代码执行过程中出现异常,方法返回
-13。
线程安全: synchronized 关键字用于确保多个线程不会同时访问 allMoveIdToUserIdListMap 和 allSuperadminMap,避免对这两个集合的并发修改。
返回值:
-11:房间号不存在-12:管理员已存在0:管理员在线-20:管理员不在线-13:出现异常
原文地址: https://www.cveoy.top/t/topic/otql 著作权归作者所有。请勿转载和采集!