gemercheung 3 年之前
父节点
当前提交
8e8e32674f
共有 3 个文件被更改,包括 5 次插入2 次删除
  1. 1 0
      src/controller/connectController.js
  2. 2 0
      src/controller/room/assistant.js
  3. 2 2
      src/controller/room/index.js

+ 1 - 0
src/controller/connectController.js

@@ -32,6 +32,7 @@ export class ConnectController extends BasicController {
           roomId,
         });
         // if (this.roomController.isHoster(role)) {
+        this.roomController.roomAssistant.hasCall = false;
         setTimeout(async () => {
           // 有可客户端主动断开时
           if (Number(user.onlineStatus) === 1) {

+ 2 - 0
src/controller/room/assistant.js

@@ -13,6 +13,7 @@ export class RoomAssistant {
     this.socket = socket;
     this.redis = redis;
     this.roomId = null;
+    this.hasCall = false;
     this.room = room;
   }
 
@@ -317,6 +318,7 @@ export class RoomAssistant {
         }
       }
       user.isInRoom = true;
+      this.hasCall = true;
       const AllRoomUsers = await getAllRoomUsers(roomId);
       const roomConfig = await getRoomConfig(roomId);
       await updateRoomUser(roomId, userId, user);

+ 2 - 2
src/controller/room/index.js

@@ -133,8 +133,8 @@ export class RoomController extends BasicController {
       // 不带key的this.user.userId
       const isInRoom = await isUserInRoom(this.roomId, this.user.userId);
       if (isInRoom) {
-        if (Number(isInRoom.onlineStatus) === 0) {
-          console.log("在房间人员掉线人员,强制上线!", isInRoom);
+        if (Number(isInRoom.onlineStatus) === 0 && this.roomAssistant.hasCall) {
+          console.log("hasCall在房间人员掉线人员,强制上线!", isInRoom);
           // 带key的this.userId
           this.roomAssistant.setOnlineStatus(this.roomId, this.userId, isInRoom);
         }