我正在开发一系列与linux机器通信的传感器。 我需要build立一个Web界面来显示传感器的状态,并在任何一个传感器的状态改变时自动更新(或者每隔几秒自动更新一次)。
读取传感器的代码全部用C代码。 将传感器数据自动推送到networking浏览器,甚至是不断请求数据,有什么select?
我已经考虑了以下scheme:在C程序中为传感器数据分配共享内存,可以通过像php这样的服务器端脚本来读取。 然后有一些Ajax或一些请求循环或计时器事件的数据。
是否有可能将数据推送到客户端而不是拉?
我真的没有任何与PHP / AJAX的经验,所以任何提示如何实施这将是伟大的。
一些关键因素我不知道:
– 如何在JavaScript中进行计时
– 如何在JavaScript中获取某种结构化数据,从请求到服务器(例如,读取传感器数据的PHP页面)
正如你所说,获取数据,你有两个解决方案:
A)用ajax提取数据
您可以轻松地使用setInterval执行一些定期任务:
setInterval(callbackserver, PERIOD_MILLIS);
如果你使用像jquery这样的框架,有很多定期更新的插件。
B)用js服务器推送数据
数据可以推送到浏览器,而不是拉动它。 为此你需要一个像Comet这样的协议的服务器。 检查这个项目的更多信息
如何在JavaScript中从请求到服务器获取某种结构化数据
json似乎是跨语言的结构化数据的完美解决方案。
我已经考虑了以下方案:在C程序中为传感器数据分配共享内存,可以通过服务器端脚本读取,例如php
为什么不简单地在C中创建一个deamon,并通过一个exec("mydeamon -data")
命令通过PHP获取数据
setInterval
。 的setTimeout( “yourAjaxRequestFunction”,延迟);
在你的情况下,如果你/你的公司能负担得起,我会推荐Wt 。
如果你的应用程序是用C编写的,那么C ++可能比PHP或Javascript更为熟悉。
它也可以处理使用Ajax拉或网络套接字推送数据到网页。