Пишу онлайн лотерею, хочу создать различные комнаты с ограничением по ставкам и участникам. Вопрос. Как правильно реализовать комнаты?
Собственно вот класс игры GameController.js:
class GameController {
constructor(timer, minBetPrice, maxBetPrice, maxAmount, room, port, socket) {
this.bets = {}
this.users = {}
this.room = room
this.timer = timer
this.minBetPrice = minBetPrice
this.maxBetPrice = maxBetPrice
this.maxAmount = maxAmount
this.amount = null
this.io = socket
this.io.listen(port)
this.initConnect()
}
initConnect () {
try {
this.io.on('connection', (socket => {
this.users[socket.id] = {
id: socket.id
}
console.log(this.users)
this.connectInRoom(socket)
socket.on('disconnect', data => {
console.log(`${socket.id} disconnected`)
delete this.users[socket.id]
})
}))
} catch (e) {
console.error(e)
}
}
connectInRoom(socket) {
socket.on('event', data => {
socket.join(data.room)
console.log(`${socket.id} - Joined in ${data.room} room`)
socket.emit('event', {
success: true,
message: `UserID - ${socket.id}`,
room: data.room
})
})
}
}
Вот содержимое app.js:
const smallRoom = new GameController(10, 10, 20, 20, 'smallRoom', 4040, io)
const highRoom = new GameController(5, 0, 10, 20, 'highRoom', 4045, io)
С клиента по событию event я получаю название комнаты и подключаюсь к ней. Насколько я понимаю, не нужно создавать 2 экземпляра класса для разных комнат в app.js? Потому что сейчас у меня происходит сразу 2 коннекта.
В дальнейшем при создании ставки в определенную комнату мне нужно будет отправлять ставку и название комнаты в которую она пойдет?