watchRoomService.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { pubClient } from "../connection/redis.js";
  2. import { logger } from "../core/logger.js";
  3. import { io } from "../core/io.js";
  4. import { FROMTYPE } from "../enum/index.js";
  5. import { leaveRoomAction } from "../controller/roomActionController.js";
  6. const prefix = process.env.REDIS_PREFIX || "chat";
  7. const getInKey = (realKey) => {
  8. return `${prefix}:${realKey}`;
  9. };
  10. const passiveLeave = async (roomId, userId, socket) => {
  11. try {
  12. setTimeout(async () => {
  13. const isExistUser = await pubClient.exists(getInKey(userId));
  14. if (isExistUser === 1) {
  15. const baseUser = await pubClient.hGetAll(getInKey(userId));
  16. const user = JSON.parse(baseUser[FROMTYPE.MiniAPP]);
  17. console.log("user-isConnected", user.isConnected);
  18. if (user && !user.isConnected) {
  19. const { userId, isConnected, from, roomId, sceneNum } = user;
  20. console.log("user", user);
  21. // const roomUniqueId = `room-${roomId}_${sceneNum}_web`;
  22. // const userUniqueId = `user-${userId}`;
  23. // const isExistRoomUser = await pubClient.hVals(roomUniqueId, userUniqueId);
  24. // logger.info("passiveLeave", isExistRoomUser);
  25. // leaveRoomAction(roomUniqueId, userUniqueId, user, socket);
  26. console.log("10秒离开");
  27. }
  28. }
  29. }, 10000);
  30. } catch (error) {
  31. logger.error("passiveLeave", error);
  32. }
  33. };
  34. export async function watchRoomService(roomId, userId, socket) {
  35. passiveLeave(roomId, userId, socket);
  36. }