gemercheung 3 年之前
父节点
当前提交
1ad04ffd15
共有 4 个文件被更改,包括 45 次插入35 次删除
  1. 2 1
      src/controller/connectController.js
  2. 12 0
      src/controller/room/assistant.js
  3. 4 8
      src/controller/room/index.js
  4. 27 26
      src/enum/event.js

+ 2 - 1
src/controller/connectController.js

@@ -33,8 +33,9 @@ export class ConnectController extends BasicController {
         });
         });
         // if (this.roomController.isHoster(role)) {
         // if (this.roomController.isHoster(role)) {
         // setTimeout(async () => {
         // setTimeout(async () => {
-        console.log("断开设置离线", user);
         user.onlineStatus = 0;
         user.onlineStatus = 0;
+        
+        console.log("断开设置离线", user);
         await updateRoomUser(roomId, userId, user);
         await updateRoomUser(roomId, userId, user);
         await this.roomController.roomAssistant.notifyUsersChange(roomId, user, false);
         await this.roomController.roomAssistant.notifyUsersChange(roomId, user, false);
         // }, 2000);
         // }, 2000);

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

@@ -402,6 +402,18 @@ export class RoomAssistant {
       return Promise.resolve([]);
       return Promise.resolve([]);
     }
     }
   }
   }
+  // 下线用户强制上线
+  async setOnlineStatus(roomId, userId, user) {
+    user.onlineStatus = 1;
+    await updateRoomUser(this.roomId, this.userId, user);
+  }
+  // 静默认更新房间状态
+  async silentUpdateRoom(roomId) {
+    const AllRoomUsers = await getAllRoomUsers(roomId);
+    this.socket.broadcast.to(roomId).emit(EVENT.silentUpdateRoom,{
+      users:AllRoomUsers
+    });
+  }
   // 主动断开
   // 主动断开
   async disconnect() {
   async disconnect() {
     try {
     try {

+ 4 - 8
src/controller/room/index.js

@@ -135,7 +135,7 @@ export class RoomController extends BasicController {
       if (isInRoom) {
       if (isInRoom) {
         if (Number(isInRoom.onlineStatus) === 0) {
         if (Number(isInRoom.onlineStatus) === 0) {
           console.log("在房间人员掉线人员,强制上线!", isInRoom);
           console.log("在房间人员掉线人员,强制上线!", isInRoom);
-          this.setOnlineStatus(this.roomId, this.userId, isInRoom);
+          this.roomAssistant.setOnlineStatus(this.roomId, this.userId, isInRoom);
         }
         }
       }
       }
     } else {
     } else {
@@ -143,13 +143,6 @@ export class RoomController extends BasicController {
       this.socket.disconnect();
       this.socket.disconnect();
     }
     }
   }
   }
-  // 下线用户强制上线
-  async setOnlineStatus(roomId, userId, user) {
-    user.onlineStatus = 1;
-    await updateRoomUser(this.roomId, this.userId, user);
-  }
-
-  silentUpdateRoom(roomId) {}
 
 
   async initParams(userId, roomId, oneSceneNum) {
   async initParams(userId, roomId, oneSceneNum) {
     this.userId = `user:${userId}`;
     this.userId = `user:${userId}`;
@@ -163,6 +156,9 @@ export class RoomController extends BasicController {
     return Promise.resolve(true);
     return Promise.resolve(true);
   }
   }
 
 
+
+
+
   initBaseAction() {
   initBaseAction() {
     // 通知 baseView 减少大量通知
     // 通知 baseView 减少大量通知
     this.socket.on(EVENT.webSyncAction, (data) => {
     this.socket.on(EVENT.webSyncAction, (data) => {

+ 27 - 26
src/enum/event.js

@@ -1,26 +1,27 @@
-const EVENT = {
-  someOneInRoom: "someOneInRoom", // 有人进入房间
-  someOneLeaveRoom: "someOneLeaveRoom", // 有人离开房间
-  startCall: "startCall", // 开始通话
-  stopCall: "stopCall", // 结束通话
-  webSyncAction: "webSyncAction", // 通知h5的事件
-  clientSyncAction: "clientSyncAction", // 通知非H5的事件
-  action: "action", // 通知所有连接设备的事件
-  roomClose: "roomClose", // 房间已结束/房主已离开
-  roomInFail: "roomInFail", // 房间人数已满
-  roomIn: "roomIn", // 通知设备成功进入房间
-  roomOut: "roomOut", // 通知设备成功进入房间
-  changeVoiceStatus: "changeVoiceStatus", // 通知某设备语音状态
-  changeOnlineStatus: "changeOnlineStatus", // 通知某设备的在线状态
-  roomPersonChange: "roomPersonChange", // 房间人数变化事件
-  changeRoomEnableTalk: "changeRoomEnableTalk", // 改变房间是否可通话的配置
-  setAssistant: "setAssistant", // 设置助手
-  setUserhasMic: "setUserhasMic", //
-  kickUser: "kickUser", // 踢人
-  roomStatus: "roomStatus", // 房间状态
-  beKicked: "beKicked", // 通知被踢者
-  beAssistant: "beAssistant", // 通知成为助手
-  beHasMic: "beHasMic", // 通知拥有MIC权
-};
-
-export { EVENT };
+const EVENT = {
+  someOneInRoom: "someOneInRoom", // 有人进入房间
+  someOneLeaveRoom: "someOneLeaveRoom", // 有人离开房间
+  startCall: "startCall", // 开始通话
+  stopCall: "stopCall", // 结束通话
+  webSyncAction: "webSyncAction", // 通知h5的事件
+  clientSyncAction: "clientSyncAction", // 通知非H5的事件
+  action: "action", // 通知所有连接设备的事件
+  roomClose: "roomClose", // 房间已结束/房主已离开
+  roomInFail: "roomInFail", // 房间人数已满
+  roomIn: "roomIn", // 通知设备成功进入房间
+  roomOut: "roomOut", // 通知设备成功进入房间
+  changeVoiceStatus: "changeVoiceStatus", // 通知某设备语音状态
+  changeOnlineStatus: "changeOnlineStatus", // 通知某设备的在线状态
+  roomPersonChange: "roomPersonChange", // 房间人数变化事件
+  changeRoomEnableTalk: "changeRoomEnableTalk", // 改变房间是否可通话的配置
+  setAssistant: "setAssistant", // 设置助手
+  setUserhasMic: "setUserhasMic", //
+  kickUser: "kickUser", // 踢人
+  roomStatus: "roomStatus", // 房间状态
+  beKicked: "beKicked", // 通知被踢者
+  beAssistant: "beAssistant", // 通知成为助手
+  beHasMic: "beHasMic", // 通知拥有MIC权
+  silentUpdateRoom: "silentUpdateRoom", // 默认通知房间更新
+};
+
+export { EVENT };