我正在开发一个系统,它有一堆与linux机器通信的传感器。我需要为此创建一个Web界面来显示传感器的状态,并在任何传感器的状态发生变化时自动更新它们(或者每隔几秒自动更新一次)。
读取传感器的代码全部采用C代码。有哪些选项可以自动将传感器数据推送到Web浏览器,甚至可以连续请求数据?
我考虑过以下方案: 在C程序中为传感器数据分配共享内存,可以通过像php这样的服务器端脚本读取。然后在循环或计时器事件中有一些ajax或者请求数据的东西。
是否可以将数据推送到客户端而不是拉?
我真的没有任何php / ajax的经验,所以关于如何实现这个的任何提示都会很棒。
我不知道的一些关键要素:
- 如何在javascript中进行计时
- 如何从请求到服务器的动态javascript中获取某种结构化数据(例如读取传感器数据的php页面)
答案 0 :(得分:1)
setInterval
进行此操作。的setTimeout( “yourAjaxRequestFunction”,延迟);
答案 1 :(得分:1)
正如您所说,要获取数据,您有两种解决方案:
A)使用ajax
拉取数据您可以使用setInterval轻松完成一些周期性任务:
setInterval(callbackserver, PERIOD_MILLIS);
如果你使用像jquery这样的框架,那么有大量的插件可以定期更新。
B)使用js服务器推送数据
可以将数据推送到浏览器而不是拉动它。为此,您需要一个基于协议的服务器,如 Comet 。查看this project了解详情
如何从请求到服务器的动态javascript中获取某种结构化数据
json似乎是结构化数据的完美解决方案。
我考虑过以下方案:分配共享内存 传感器数据的C程序,可由服务器端读取 像php这样的脚本
为什么不简单地在C中制作一个deamon并通过PHP使用exec("mydeamon -data")
命令从中获取数据
答案 2 :(得分:1)
在您的情况下,如果您/您的公司负担得起,我建议Wt 如果您的应用程序是用C语言编写的,那么C ++可能比PHP或Javascript更熟悉 它还可以使用ajax pull或web套接字将数据推送到网页。
答案 3 :(得分:0)