让我首先描述一下我试图用一个例子来做什么:
- Players join a game (it's a web turn-based app/game with firebase/angular)
- When they are ready they have 30 seconds to choose a character
- Then player 1 has 30 sec to end his turn
- Then player 2 has 30 sec to end his turn
- ...
这是一个基于回合的小游戏,我很难结束一个回合。我曾想过在云函数上使用cron或setInterval,但不建议使用setInterval(成本高昂(,cron也不是我想要的(我不想每天都触发一些东西…(
在firebase上设置间隔,而不是使用cron&;Firebase的云函数是否按时触发?
正确的方法应该是什么(根据增加游戏"状态"的时间结束回合(?
您可以在客户端js中使用setInterval。在浏览器中运行setInterval是在javascript中经过预先确定的时间间隔后执行某些操作的正确方法。setInterval不适用于云函数,但您不需要它们。
Psuedo代码如下:
- 通过保存当前时间开始玩家回合
- setInterval为开始时间+时间间隔
- 30秒后,您的setInterval回调将执行,您可以在其中更新游戏状态
- 冲洗并重复