|
@@ -2,7 +2,8 @@ import { pubClient } from "../connection/redis.js";
|
|
|
import { ROLES, CODEMEG, EVENT, FROMTYPE } from "../enum/index.js";
|
|
|
import { io } from "../core/io.js";
|
|
|
import { logger } from "../core/logger.js";
|
|
|
-// import { removeRoomAllUsers } from "../service/userService.js";
|
|
|
+import { updateUser, removeRoomAllUsers } from "../service/userService.js";
|
|
|
+import { watchRoomService } from "../service/watchRoomService.js";
|
|
|
|
|
|
/**
|
|
|
* 检查是否是房主
|
|
@@ -110,7 +111,7 @@ const leaveRoomAction = async (roomId, userId, user, socket) => {
|
|
|
const closeRoomAction = async (roomId, userId, user, socket) => {
|
|
|
logger.info("房主关闭房间", userId);
|
|
|
socket.leave(roomId);
|
|
|
- removeRoomAllUsers(roomId);
|
|
|
+ await removeRoomAllUsers(roomId);
|
|
|
socket.broadcast.emit(EVENT.roomClose, { code: 3002, msg: CODEMEG[3002] });
|
|
|
};
|
|
|
export async function roomController(socket) {
|
|
@@ -123,9 +124,10 @@ export async function roomController(socket) {
|
|
|
const roomUniqueId = `room-${webRoomId}`;
|
|
|
// const userLimitNum = userLimitNum || process.env.US
|
|
|
if ("roomId" in user && "userId" in user) {
|
|
|
- user.isLogin = true;
|
|
|
- await pubClient.hSet(userUniqueId, user);
|
|
|
- await pubClient.expire(userUniqueId, 60 * 60 * 24);
|
|
|
+ const userObj = { ...user, isConnected: true };
|
|
|
+ updateUser(userUniqueId, userObj);
|
|
|
+ // await pubClient.hSet(userUniqueId, user);
|
|
|
+ // await pubClient.expire(userUniqueId, 60 * 60 * 24);
|
|
|
// 房主自动创建房间
|
|
|
|
|
|
if (isHoster(role) && Number(from) === FROMTYPE.MiniAPP) {
|
|
@@ -146,12 +148,18 @@ export async function roomController(socket) {
|
|
|
// leaveRoom({ clientRoom, userUniqueId, roomUniqueId, socket });
|
|
|
// watchRoomWithMaster(roomUniqueId, socket);
|
|
|
console.log("reason", reason);
|
|
|
+ disconnectAction(roomUniqueId, userUniqueId, socket, user);
|
|
|
});
|
|
|
socket.on("reconnect", () => {
|
|
|
console.log("reconnect");
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+const disconnectAction = async (roomId, userId, socket, user) => {
|
|
|
+ const userObj = { ...user, isConnected: false };
|
|
|
+ updateUser(userId, userObj);
|
|
|
+ watchRoomService(roomId, userId, socket);
|
|
|
+};
|
|
|
|
|
|
const startCallAction = async (roomId, userId, user, socket) => {
|
|
|
if (!isHoster(user.role)) {
|