gemercheung пре 3 година
родитељ
комит
fe55886757
2 измењених фајлова са 6 додато и 4 уклоњено
  1. 4 3
      src/controller/connectController.js
  2. 2 1
      src/controller/room/index.js

+ 4 - 3
src/controller/connectController.js

@@ -2,7 +2,7 @@ import { BasicController } from "./basicController.js";
 import { RoomController } from "./room/index.js";
 import { SyncDeviceController } from "./syncDeviceController.js";
 import { FROMTYPE } from "../enum/index.js";
-import { updateRoomUser } from "../service/userService.js";
+import { updateRoomUser, isUserInRoom } from "../service/userService.js";
 
 export class ConnectController extends BasicController {
   constructor(...args) {
@@ -37,12 +37,13 @@ export class ConnectController extends BasicController {
           // 有可客户端主动断开时
           if (Number(user.onlineStatus) === 1) {
             // const res = await this.roomController.roomAssistant.checkRoomMaximum(roomId);
-            if (!this.roomController.roomAssistant.roomMax) {
+            const isInRoom = await isUserInRoom(roomId, user.userId);
+            if (!this.roomController.roomAssistant.roomMax && isInRoom) {
               console.log("已在线,被断开后", user);
               user.onlineStatus = 0;
               await updateRoomUser(roomId, userId, user);
               await this.roomController.roomAssistant.notifyUsersChange(roomId, user, false);
-            } 
+            }
           }
         }, 1000);
 

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

@@ -226,7 +226,8 @@ export class RoomController extends BasicController {
 
     this.socket.on(EVENT.changeOnlineStatus, async (data) => {
       try {
-        if (!this.roomAssistant.roomMax) {
+        const isInRoom = await isUserInRoom(this.roomId, this.user.userId);
+        if (!this.roomAssistant.roomMax && isInRoom) {
           const user = await this.currentUser();
           user.onlineStatus = Number(data.status);
           await updateRoomUser(this.roomId, this.userId, user);