首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP -单个连接上的单个用户

问HTTP -单个连接上的单个用户
EN

Stack Overflow用户
提问于 2016-12-26 22:57:57
回答 1查看 82关注 0票数 1

我有一个覆盆子pi3从instructables.com 您的Raspberry Pi的简单直观的web界面运行这个项目

我需要使按钮发挥作用,这样一次只有一个用户可以按下一个按钮,而许多用户可以查看页面。这是为了控制一个平底/倾斜网络相机,其中按钮零拍相机左,按钮一拍相机右,等等。覆盆子驱动继电器驱动马达在佩尔科相机盘/倾斜安装。我不能让一个用户试图向左移动,而另一个用户在不同的http连接上尝试向右移动。没有登录来访问这个树莓。

是否有Apache2设置来完成这一任务?我不认为向GPIO.php文件中添加代码可以解决这个问题,或者有吗?我是否可以使用信号池或$global标志来限制多个并发查看器的按钮驱动?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-27 02:44:39

你需要一个互斥锁。有两种快速和肮脏的方法。

锁定系统上的本地文件

打开文件,并将其锁定以便写入。

在此期间,如果另一个用户试图控制摄像机,您将首先尝试用它打开这个文件并将其锁定以便写入,它将失败并出错。

此时,您知道您不能给第二个用户控制。

PHP锁定用于写入的文件

注意:对于不同的锁,您可以使用多个不同的文件。例如,如果您有多个相机,那么您可以使用多个文件锁定,每个相机一个。

使用像MySQL这样的数据库

使用像MySQL这样的数据库,您可以锁定表中的特定行,有效地执行与上一个示例中的文件相同的操作。

如果第二个用户出现,我们再次尝试锁定同一行,然后失败,此时我们可以拒绝第二个用户的请求。

在MySQL中锁定一行

注意:您可以使用多个行,其中每一行可以表示上面提到的不同的摄像机。

其他需要考虑的事情

我强烈建议向您的用户提供查看他们是否是当前用户的能力,并实现一种在用户之间公平切换的方法,这样单个用户就不能占用所有的乐趣。也许像15秒或30秒的计时器一样简单,它在当前活动用户之间切换控制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41337084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档