gpt4 book ai didi

PHP前端用户队列

转载 作者:行者123 更新时间:2023-11-29 14:11:58 25 4
gpt4 key购买 nike

我正在构建一个网站,用户可以控制网络摄像头左右转动。每个用户都有一分钟的行动时间。现场将有一个排队系统,允许用户一一控制摄像机。所以我的问题如下,有人对如何构建这个排队系统有建议吗?有我可以使用的教程或代码吗?

非常感谢!

最佳答案

有一个数据库表来跟踪队列,例如:

queue (id, session_id, start_time, last_update)

当用户点击您的页面时,将其插入队列表中。在页面上使用常规的 ajax 调用(大约 30 秒)来轮询服务器以查看当前用户是否已启动。如果用户是表中的第一条记录,那么就轮到他了,因此将 start_time 更新为当前时间,并发送 ajax 响应,告诉浏览器显示带有相机移动按钮的 UI。

当按下按钮时,在允许该操作之前,在服务器端验证该用户确实轮到了,并且他的 start_time 小于 1 分钟前。如果他的回合结束,则从表中删除他,以便下一个用户成为第一条记录并轮到他,然后向浏览器发送响应,以便浏览器隐藏相机 UI 并给出消息。

除了在点击页面时插入队列之外,还要检查控制摄像头的用户是否已经过了 1 分钟,如果是,则删除他的记录(或者可以在下面的 cronjob 上完成)。

每次 ajax poll 触发时,用时间戳更新用户 last_update。使用 cronjob 或仅在服务器端调用来检查队列中的任何记录是否有早于很短时间的 last_update,例如30 秒。如果发现任何用户,则将其删除,因为这些用户已不再在该页面上。这也将防止攻击者试图填满您的队列。

在同一个 cronjob 上,检查轮到的用户是否填充了 start_time,如果 30 秒后他还没有开始,则从队列中删除。

ajax 调用会使它变得漂亮和无缝,但它们不是必需的,如果用户禁用了 Javascript,您仍然可以检测到这一点并使用整个页面的元刷新。

关于PHP前端用户队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com