我正在开发一个系统,该系统有一堆与 Linux 机器通信的传感器。我需要为此制作一个网络界面来显示传感器的状态,并在任何传感器的状态发生变化时自动更新它们(或者每隔几秒自动更新它们)。
读取传感器的代码全部是C代码。自动或连续请求数据将传感器数据推送到网络浏览器的选项有哪些?
我考虑过以下方案: 在 C 程序中为传感器数据分配共享内存,该数据可以由服务器端脚本(如 php)读取。然后使用一些 ajax 或一些请求循环或计时器事件数据的东西。
是否可以将数据推送到客户端而不是拉取?
我确实没有任何 php/ajax 经验,因此任何关于如何实现这一点的提示都会很棒。
一些我不知道的关键要素:
-如何在 javascript 中进行计时
-如何从对服务器的请求中动态获取某种 javascript 结构化数据(例如读取传感器数据的 php 页面)
最佳答案
正如您所说,要获取数据,您有两种解决方案:
A)使用ajax拉取数据
您可以使用 setInterval 轻松执行一些定期任务:
setInterval(callbackserver, PERIOD_MILLIS);
如果你使用像jquery这样的框架,有很多插件可以定期更新。
B) 使用js服务器推送数据
数据可以推送到浏览器而不是拉取它。为此,您需要一个基于 Comet 等协议(protocol)的服务器。检查this project了解更多信息
How to get some sort of structured data in javascript on the fly from a request to the server
json 似乎是跨语言结构化数据的完美解决方案。
I have considered the following scheme: Allocate shared memory in the C program for the sensor data, which can be read by a server side script like php
为什么不简单地用 C 语言创建一个守护进程并通过 PHP 使用 exec("mydeamon -data")
命令从中获取数据
关于php - 自动更新网页内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7172080/