Как вызвать событие каждые 30 секунд для нескольких комнат сокетов через nodejs - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь разработать игру-викторину, в которой несколько игроков могут играть в игру-викторину друг с другом, создавая команды. Для этого я использую nodejs, express и socket.io для подключения и для генерации команды, а также управляю им с помощью комнат socket.io. Моя задача - запустить событие, которое будет показывать вопросы командам (комнатам розеток) каждые 30 секунд.

Я уже установил соединение между клиентом и сервером через socket.io и успешно сгенерированные команды и их уважаемые комнаты.

вот мой код для подключения и генерации команды.

Сервер


global.io.on('connection',function(socket){
    console.log('conn establish');

    socket.on('requestToPlay',function(request){
        if(request.hasOwnProperty('contact_number')){
            request.socket_id = socket.id;
            GameController.requestToPlay(request);
        }
    });

    socket.on('joinRoom',function(roomId){
        console.log('event fired');
        socket.join(roomId);
    });

});

когда пользователь захочет сыграть, он запустит событие requestToPlay, и сервер назначит ему номер комнаты. После этого он запустит событие joinRoom, чтобы присоединиться к этой комнате.

Я хочу, чтобы при создании комнаты автоматически генерировался процесс, настроенный на эту комнату, который будет запускать событие каждые 30 секунд и задавать вопросы клиенту.

Есть ли способ установить автоматически сгенерированное событие в каждой комнате на время их создания, которое будет делать это.

любезно предложите любой пример или ссылку на статью для этого.

любая помощь или предложение высоко ценится.

1 Ответ

0 голосов
/ 05 мая 2019

это можно сделать, используя ссылку setInterval для ссылки

. Вы также можете использовать некоторые API, такие как node-schedule , node-cron

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...