如何通过Node.js在每30秒内为多个套接字房间触发事件

时间:2019-05-05 07:18:39

标签: node.js express socket.io

我正在尝试开发问答游戏,其中多个玩家可以通过组队彼此进行问答游戏。为此,我正在使用socket.io房间使用nodejs,express和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事件,服务器将为其分配房间ID。之后,他将触发joinRoom事件加入该会议室。

我希望在创建会议室时自动设置为该会议室的流程,该流程将每30秒触发一次事件,并向客户提出问题。

是否有一种方法可以在每个房间的创建时间上设置一个自动生成的事件,以实现此目的。

为此建议任何示例或文章链接。

我们非常感谢您的帮助或建议。

1 个答案:

答案 0 :(得分:0)

可以使用setInterval link for ref

您还可以使用一些API,例如node-schedulenode-cron