繁体   English   中英

Linux终端与服务器的通讯

[英]Linux terminal communication with server

我有一个脚本在终端中运行,该脚本每2秒从PHP脚本中轮询服务器以获取0或1,然后根据结果执行命令。

不重要的注意事项:它在树莓派上运行。

所以我的问题是:是否有更好的方法与服务器通信? 理想的情况是类似socket.io或html5 websocket类型的连接,但是特别不能从终端执行。

这是我所拥有的,以便您掌握要点

while :
 do

gpio mode 0 out
gpio mode 7 out

var1=$(curl http://url.com/index.php)
L1=$(echo $var1 | cut -c1-1)
L7=$(echo $var1 | cut -c7-7)
if [ $L1 == 0 ]; then
gpio write 0 0
elif [ $L1 == 1 ]; then
gpio write 0 1
fi

if [ $L7 == 0 ]; then
gpio write 7 0
elif [ $L7 == 1 ]; then
gpio write 7 1
fi

gpio readall
sleep 2

done

编辑:我需要在同一台服务器上使用此设备运行大约1000个树莓派设备,而我只是在寻找最有效的方法。

有很多方法可以做到这一点。 HTTP并不是最适合的协议(因为它不支持会话),但是因为您已经在使用它。 让我们看一下HTTP的解决方案。

您可以将数据从服务器推送到客户端,而不必进行轮询(这很昂贵,但易于实现)。

要使用HTTP进行此操作,请使用COMET,这是一些不同技术的总称。 请参阅http://en.wikipedia.org/wiki/Comet_%28programming%29

使用nginx进行此操作需要一个额外的模块,例如: https : //github.com/wandenberg/nginx-push-stream-module

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM