import { pubClient } from "../connection/redis.js"; import { logger } from "../core/logger.js"; import { io } from "../core/io.js"; import { FROMTYPE } from "../enum/index.js"; import { leaveRoomAction } from "../controller/roomActionController.js"; const prefix = process.env.REDIS_PREFIX || "chat"; const getInKey = (realKey) => { return `${prefix}:${realKey}`; }; const passiveLeave = async (roomId, userId, socket) => { try { setTimeout(async () => { const isExistUser = await pubClient.exists(getInKey(userId)); if (isExistUser === 1) { const baseUser = await pubClient.hGetAll(getInKey(userId)); const user = JSON.parse(baseUser[FROMTYPE.MiniAPP]); console.log("user-isConnected", user.isConnected); if (user && !user.isConnected) { const { userId, isConnected, from, roomId, sceneNum } = user; console.log("user", user); // const roomUniqueId = `room-${roomId}_${sceneNum}_web`; // const userUniqueId = `user-${userId}`; // const isExistRoomUser = await pubClient.hVals(roomUniqueId, userUniqueId); // logger.info("passiveLeave", isExistRoomUser); // leaveRoomAction(roomUniqueId, userUniqueId, user, socket); console.log("10秒离开"); } } }, 10000); } catch (error) { logger.error("passiveLeave", error); } }; export async function watchRoomService(roomId, userId, socket) { passiveLeave(roomId, userId, socket); }