32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
const { getRooms, getRoom, updateRoom, createNewRoom } = require('../controllers/roomController');
|
|
const { sendToOnePlayerRooms, sendToOnePlayerData } = require('../socket/emits');
|
|
|
|
module.exports = socket => {
|
|
const req = socket.request;
|
|
|
|
const handleGetData = async () => {
|
|
const room = await getRoom(req.session.roomId);
|
|
// Handle the situation when the server crashes and any player reconnects after the time has expired
|
|
// Typically, the responsibility for changing players is managed by gameHandler.js.
|
|
if (room.nextMoveTime <= Date.now()) {
|
|
room.changeMovingPlayer();
|
|
await updateRoom(room);
|
|
}
|
|
sendToOnePlayerData(socket.id, room);
|
|
};
|
|
|
|
const handleGetAllRooms = async () => {
|
|
const rooms = await getRooms();
|
|
sendToOnePlayerRooms(socket.id, rooms);
|
|
};
|
|
|
|
const handleCreateRoom = async data => {
|
|
createNewRoom(data);
|
|
sendToOnePlayerRooms(socket.id, await getRooms());
|
|
};
|
|
|
|
socket.on('room:data', handleGetData);
|
|
socket.on('room:rooms', handleGetAllRooms);
|
|
socket.on('room:create', handleCreateRoom);
|
|
};
|