【问题标题】:How do I create a queue for the use of web controls so only one user can see them at a time?如何为使用 Web 控件创建队列,以便一次只有一个用户可以看到它们?
【发布时间】:2012-08-05 14:15:27
【问题描述】:

我正在开发小机器人 Arena,使用 AJAX/PHP 前端、Websockets 向 arduino 发送命令,以及 arduino 向机器人发送 IR 命令。用户通过网络摄像头观看机器人。

现在,如果您访问该网站,它对所有人都是免费的。有两个机器人有独立的控制按钮,但是很多人可以同时加载网站并点击按钮,这意味着没有人可以对机器人进行独占控制。

我不希望人们注册并创建用户名/密码,但我希望网站要求他们在连接时输入昵称。输入昵称后,他们可以选择在无人等待的情况下控制机器人,并且控制将被显示。 (如果用户 #2 现在想要控制该机器人,该站点将向他显示用户 1 具有控制权,并且他可能会将他的名字放在队列中。(我想如果其他人,我会给人们 45 秒到一分钟的控制权正在等待)

我对 PHP 和 javascript 有一点了解,但我不确定如何处理这个问题。我是否需要使用 mySQL 数据库来跟踪控件的队列和锁定/解锁状态?

谢谢!

TL/DR 我需要创建一个队列,因此两个用户不能同时访问网站上的同一组按钮。

【问题讨论】:

    标签: queue controls websocket arduino


    【解决方案1】:

    我建议您将 cookie 用于“用户识别”,您可以在其中保存时间戳。这既可以唯一标识用户,也可以让您了解用户队列。如果您介意 cookie 被黑客入侵,您应该加密该时间戳。

    使用此程序,您无需要求昵称,也无需使用数据库。

    您还可以提供时间窗口访问,检查每次发送信号时“cookie 时间戳”和“实际时间”之间的时间差。

    【讨论】:

      猜你喜欢
      • 2014-10-29
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 2018-12-22
      • 2012-06-29
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      相关资源
      最近更新 更多