Я копаюсь в документах Socket.io и до сих пор не могу понять, почему io.sockets.on
не работает. Я пытался использовать io.on
, но безуспешно.
На клиенте я просто слушаю события socket.on(ROUND_START/ROUND_END)
Этот клиентский прослушиватель работает, однако серверный - io.sockets.on(ROUND_START...
- не работает.
Сервер
/**
* Handle Game phases
*/
const NEXT_GAME_TIMEOUT = 5000;
const END_GAME_TIMEOUT = 10000;
const FULL_GAME_TIMEOUT = END_GAME_TIMEOUT + NEXT_GAME_TIMEOUT;
const ROUND_START = "ROUND_START";
const ROUND_END = "ROUND_END";
setInterval(() => {
io.sockets.emit(ROUND_START);
}, FULL_GAME_TIMEOUT);
// Not working
io.sockets.on(ROUND_START, () => {
console.log("ROUND STARTED")
setTimeout(() => {
io.sockets.emit(ROUND_END);
}, END_GAME_TIMEOUT)
});
io.sockets.on(ROUND_END, () => {
console.log("ROUND ENDED")
setTimeout(() => {
io.sockets.emit(ROUND_START);
}, NEXT_GAME_TIMEOUT)
});
Идея не посылать что-либо, связанное с началом раунда от клиента, заключается в том, что раунды должны быть синхронизированы между сокетами.
Что я делаю не так?