gemercheung 3 vuotta sitten
vanhempi
commit
996e0b66b7
2 muutettua tiedostoa jossa 59 lisäystä ja 50 poistoa
  1. 11 2
      src/controller/room/index.js
  2. 48 48
      src/service/roomConfigService.js

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

@@ -123,7 +123,7 @@ export class RoomController extends BasicController {
           const checkoutMaster = await isRoomMaster(this.roomId, this.userId);
           const isNoExistMaster = Object.prototype.hasOwnProperty.call(roomConfig, "masterId");
           // console.log("checkoutMaster-isNoExistMaster", checkoutMaster, !isNoExistMaster);
-          if (checkoutMaster || !isNoExistMaster) {
+          const setRoomMaster = async () => {
             console.log("房主进入记录信息::: checkoutMaster: %s, isNoExistMaster: %s ,roomId %s ,roomConfig", checkoutMaster, !isNoExistMaster, this.roomId, roomConfig);
             const roomConfig = {
               masterId: this.userId,
@@ -131,8 +131,17 @@ export class RoomController extends BasicController {
               enableTalk: this.user.enableTalk === "true" ? true : false,
             };
             await setRoomConfig(this.roomId, roomConfig);
+          };
+          if (!!isNoExistMaster) {
+            console.log("首次房主进入", typeof roomConfig, roomConfig);
+            setRoomMaster();
           } else {
-            console.error("存在非法房主", this.user);
+            if (checkoutMaster) {
+              console.log("二次房主进入", typeof roomConfig, roomConfig);
+              setRoomMaster();
+            } else {
+              console.error("存在非法房主", this.user);
+            }
           }
         }
       }

+ 48 - 48
src/service/roomConfigService.js

@@ -1,48 +1,48 @@
-import { pubClient } from "../connection/redis.js";
-
-const prefix = process.env.REDIS_PREFIX || "chat";
-
-const getInKey = (realKey) => {
-  return `${prefix}:${realKey}`;
-};
-const setRoomConfig = (roomId, config) => {
-  const roomConfigKey = `config:${roomId}`;
-  // console.log("roomConfigKey", roomConfigKey);
-  // Object.keys(config).forEach((item) => {
-  //   console.log("item", item, config[item]);
-  //   // pubClient.set(roomConfigKey, item, config[item]);// 旧版
-  // });
-  pubClient.hSet(getInKey(roomConfigKey), config); // 5.0 可以用hash set
-};
-const removeRoomConfig = (roomId, config) => {
-  const roomConfigKey = `config:${roomId}`;
-  return pubClient.del(getInKey(roomConfigKey));
-};
-const getRoomConfig = (roomId, config) => {
-  const roomConfigKey = `config:${roomId}`;
-  return pubClient.hGetAll(getInKey(roomConfigKey));
-};
-const updateRoomConfigByKey = async (roomId, keyName, value) => {
-  const roomConfigKey = `config:${roomId}`;
-  const res = await pubClient.hGetAll(getInKey(roomConfigKey));
-  const newKey = { [keyName]: value };
-  const updateObj = Object.assign({}, res, newKey);
-  return pubClient.hSet(getInKey(roomConfigKey), updateObj);
-};
-const isRoomMaster = async (roomId, userId) => {
-  // const roomConfigKey = `config:${roomId}`;
-  const res = await getRoomConfig(roomId);
-
-  if (res) {
-    console.log("isRoomMaster-res", userId);
-    if (res.masterId == userId) {
-      return Promise.resolve(true);
-    } else {
-      return Promise.resolve(false);
-    }
-  } else {
-    return Promise.resolve(false);
-  }
-};
-
-export { setRoomConfig, getRoomConfig, removeRoomConfig, updateRoomConfigByKey, isRoomMaster };
+import { pubClient } from "../connection/redis.js";
+
+const prefix = process.env.REDIS_PREFIX || "chat";
+
+const getInKey = (realKey) => {
+  return `${prefix}:${realKey}`;
+};
+const setRoomConfig = (roomId, config) => {
+  const roomConfigKey = `config:${roomId}`;
+  // console.log("roomConfigKey", roomConfigKey);
+  // Object.keys(config).forEach((item) => {
+  //   console.log("item", item, config[item]);
+  //   // pubClient.set(roomConfigKey, item, config[item]);// 旧版
+  // });
+  pubClient.hSet(getInKey(roomConfigKey), config); // 5.0 可以用hash set
+};
+const removeRoomConfig = (roomId, config) => {
+  const roomConfigKey = `config:${roomId}`;
+  return pubClient.del(getInKey(roomConfigKey));
+};
+const getRoomConfig = (roomId, config) => {
+  const roomConfigKey = `config:${roomId}`;
+  return pubClient.hGetAll(getInKey(roomConfigKey));
+};
+const updateRoomConfigByKey = async (roomId, keyName, value) => {
+  const roomConfigKey = `config:${roomId}`;
+  const res = await pubClient.hGetAll(getInKey(roomConfigKey));
+  const newKey = { [keyName]: value };
+  const updateObj = Object.assign({}, res, newKey);
+  return pubClient.hSet(getInKey(roomConfigKey), updateObj);
+};
+const isRoomMaster = async (roomId, userId) => {
+  // const roomConfigKey = `config:${roomId}`;
+  const res = await getRoomConfig(roomId);
+
+  if (res) {
+    console.log("isRoomMaster-res",res.masterId, userId);
+    if (res.masterId == userId) {
+      return Promise.resolve(true);
+    } else {
+      return Promise.resolve(false);
+    }
+  } else {
+    return Promise.resolve(false);
+  }
+};
+
+export { setRoomConfig, getRoomConfig, removeRoomConfig, updateRoomConfigByKey, isRoomMaster };