该方法 intoLiveRoomSuperadmin 用于将一个超级管理员添加到一个直播间中。方法接收两个参数:moveId 代表房间号,superadmin 代表超级管理员对象。

代码解释:

  1. 检查房间是否存在: 首先,方法使用 synchronized 关键字对 allMoveIdToUserIdListMap 进行同步,确保只有一个线程可以同时访问该集合。方法检查 allMoveIdToUserIdListMap 中是否包含传入的房间号 moveId。如果不存在,则说明该房间号不存在,方法返回 -11

  2. 检查管理员是否已存在: 如果房间号存在,方法获取房间对应的用户列表 userIdList,并遍历列表检查管理员的 superId 是否已存在。如果管理员已存在,方法返回 -12

  3. 将管理员添加到房间: 如果管理员不存在,方法将管理员的 superId 添加到 userIdList 中。

  4. 将管理员添加到全局管理员集合: 接着,方法使用 synchronized 关键字对 allSuperadminMap 进行同步,确保只有一个线程可以同时访问该集合。方法将管理员对象 superadmin 添加到 allSuperadminMap 中。

  5. 检查管理员是否在线: 最后,方法调用 ExternalCommunicationKit.existUser(moveId) 方法检查管理员是否在线。如果在线,方法返回 0;否则,方法返回 -20

  6. 异常处理: 如果代码执行过程中出现异常,方法返回 -13

线程安全: synchronized 关键字用于确保多个线程不会同时访问 allMoveIdToUserIdListMapallSuperadminMap,避免对这两个集合的并发修改。

返回值:

  • -11:房间号不存在
  • -12:管理员已存在
  • 0:管理员在线
  • -20:管理员不在线
  • -13:出现异常
将超级管理员添加到直播间的方法 - Java 代码解析

原文地址: https://www.cveoy.top/t/topic/otql 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录