25 lines
980 B
JavaScript
25 lines
980 B
JavaScript
const { logger } = require('../../utils/logger');
|
|
|
|
module.exports = function(io, socket, gameState) {
|
|
// 방 나가기 이벤트
|
|
socket.on('leaveRoom', function(roomData) {
|
|
try {
|
|
const roomId = roomData.roomId;
|
|
|
|
socket.leave(roomId);
|
|
socket.emit('exitRoom',{message: "방을 떠났습니다."});
|
|
socket.to(roomId).emit('endGame', { message: "상대방이 방을 떠났습니다." });
|
|
|
|
// 대기방 목록에서 제거
|
|
gameState.rooms = gameState.rooms.filter(room => room.roomId !== roomId);
|
|
|
|
// 매핑 정보 삭제
|
|
gameState.socketRooms.delete(socket.id);
|
|
|
|
logger.info(`방 나가기 처리: 플레이어 ${socket.id}, 방 ${roomId}`);
|
|
} catch (err) {
|
|
logger.error(`방 나가기 처리 중 오류: ${err}`);
|
|
socket.emit('error', { message: "방 나가기 처리 중 오류가 발생했습니다." });
|
|
}
|
|
});
|
|
}; |