我有一个覆盆子pi3从instructables.com 您的Raspberry Pi的简单直观的web界面运行这个项目
我需要使按钮发挥作用,这样一次只有一个用户可以按下一个按钮,而许多用户可以查看页面。这是为了控制一个平底/倾斜网络相机,其中按钮零拍相机左,按钮一拍相机右,等等。覆盆子驱动继电器驱动马达在佩尔科相机盘/倾斜安装。我不能让一个用户试图向左移动,而另一个用户在不同的http连接上尝试向右移动。没有登录来访问这个树莓。
是否有Apache2设置来完成这一任务?我不认为向GPIO.php文件中添加代码可以解决这个问题,或者有吗?我是否可以使用信号池或$global标志来限制多个并发查看器的按钮驱动?
发布于 2016-12-27 02:44:39
你需要一个互斥锁。有两种快速和肮脏的方法。
锁定系统上的本地文件
打开文件,并将其锁定以便写入。
在此期间,如果另一个用户试图控制摄像机,您将首先尝试用它打开这个文件并将其锁定以便写入,它将失败并出错。
此时,您知道您不能给第二个用户控制。
注意:对于不同的锁,您可以使用多个不同的文件。例如,如果您有多个相机,那么您可以使用多个文件锁定,每个相机一个。
使用像MySQL这样的数据库
使用像MySQL这样的数据库,您可以锁定表中的特定行,有效地执行与上一个示例中的文件相同的操作。
如果第二个用户出现,我们再次尝试锁定同一行,然后失败,此时我们可以拒绝第二个用户的请求。
注意:您可以使用多个行,其中每一行可以表示上面提到的不同的摄像机。
其他需要考虑的事情
我强烈建议向您的用户提供查看他们是否是当前用户的能力,并实现一种在用户之间公平切换的方法,这样单个用户就不能占用所有的乐趣。也许像15秒或30秒的计时器一样简单,它在当前活动用户之间切换控制。
https://stackoverflow.com/questions/41337084
复制相似问题