123456789101112131415161718192021222324252627282930313233343536373839 |
- 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);
- }
|