假设我正在使用 Django Channels (Websockets) 构建一个酒吧测验应用程序。有 10 个问题,每个问题都有时间限制,并有一个额外 5 秒的按钮。
我知道有可能将计时器放在客户端,但我需要将它放在服务器端,以避免篡改 Js 导致问题,因为涉及很多玩家。
如何在 Django 服务器端创建计时器?一旦计时器到了,就需要调用一个函数来获取下一个问题。我会知道如何用 while 循环来做到这一点:
While True:
if datetime.now() == question_end_time:
fetch_next_question()
但是从我读到的内容来看,由于阻塞了线程,这似乎不是一个好主意。有没有其他方法可以每秒检查问题的时间是否已到,是否调用函数?
提前致谢。
最佳答案
反之亦然,不是每秒都检查,而是设置在计时器结束时发生一些事情。
使用javascript创建一个计时器,当计时器结束时,javascript将使用ajax调用django url。
这样您就不必每秒进行监控。
关于python - 如何在 Django Channels 中创建服务器端计时器/倒计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65961945/