|
@@ -102,8 +102,7 @@ const joinRoomAction = async (roomId, userId, user, socket) => {
|
|
*/
|
|
*/
|
|
const leaveRoomAction = async (roomId, userId, user, socket) => {
|
|
const leaveRoomAction = async (roomId, userId, user, socket) => {
|
|
logger.info("离开房间", userId);
|
|
logger.info("离开房间", userId);
|
|
- socket.leave(roomId);
|
|
|
|
- await leaveRoom(roomId, userId);
|
|
|
|
|
|
+
|
|
const AllRoomUsers = await getAllRoomUsers(roomId);
|
|
const AllRoomUsers = await getAllRoomUsers(roomId);
|
|
const roomConfig = await getRoomConfig(roomId);
|
|
const roomConfig = await getRoomConfig(roomId);
|
|
socket.broadcast.to(roomId).emit(EVENT.roomOut, {
|
|
socket.broadcast.to(roomId).emit(EVENT.roomOut, {
|
|
@@ -115,6 +114,8 @@ const leaveRoomAction = async (roomId, userId, user, socket) => {
|
|
user,
|
|
user,
|
|
roomsPerson: AllRoomUsers,
|
|
roomsPerson: AllRoomUsers,
|
|
});
|
|
});
|
|
|
|
+ await socket.leave(roomId);
|
|
|
|
+ await leaveRoom(roomId, userId);
|
|
};
|
|
};
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -154,12 +155,15 @@ const disconnectAction = async (ids, socket, user) => {
|
|
const startCallAction = async (roomId, userId, user, socket) => {
|
|
const startCallAction = async (roomId, userId, user, socket) => {
|
|
try {
|
|
try {
|
|
if (!isHoster(user.role)) {
|
|
if (!isHoster(user.role)) {
|
|
|
|
+ console.log("不是房主");
|
|
await joinRoomAction(roomId, userId, user, socket);
|
|
await joinRoomAction(roomId, userId, user, socket);
|
|
} else {
|
|
} else {
|
|
const hasRoom = await pubClient.hVals(roomId);
|
|
const hasRoom = await pubClient.hVals(roomId);
|
|
if (hasRoom.length === 0) {
|
|
if (hasRoom.length === 0) {
|
|
logger.debug("房主主动创建房间 :", { roomId, userId });
|
|
logger.debug("房主主动创建房间 :", { roomId, userId });
|
|
await buildRoom(roomId, userId, user);
|
|
await buildRoom(roomId, userId, user);
|
|
|
|
+ } else {
|
|
|
|
+ logger.debug("房主已存在房间 :", { roomId, userId });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
user.isInRoom = true;
|
|
user.isInRoom = true;
|
|
@@ -169,15 +173,14 @@ const startCallAction = async (roomId, userId, user, socket) => {
|
|
logger.info("roomId", roomId);
|
|
logger.info("roomId", roomId);
|
|
logger.info("AllRoomUsers", AllRoomUsers.length);
|
|
logger.info("AllRoomUsers", AllRoomUsers.length);
|
|
|
|
|
|
- socket.broadcast.to(roomId).emit(EVENT.someOneInRoom, {
|
|
|
|
|
|
+ socket.emit(EVENT.roomIn, {
|
|
user,
|
|
user,
|
|
roomsPerson: AllRoomUsers,
|
|
roomsPerson: AllRoomUsers,
|
|
|
|
+ roomsConfig: roomConfig,
|
|
});
|
|
});
|
|
-
|
|
|
|
- socket.emit(EVENT.roomIn, {
|
|
|
|
|
|
+ socket.broadcast.to(roomId).emit(EVENT.someOneInRoom, {
|
|
user,
|
|
user,
|
|
roomsPerson: AllRoomUsers,
|
|
roomsPerson: AllRoomUsers,
|
|
- roomsConfig: roomConfig,
|
|
|
|
});
|
|
});
|
|
} catch (error) {
|
|
} catch (error) {
|
|
// console.error("startCallAction:", error);
|
|
// console.error("startCallAction:", error);
|