3

我有一个底层 C 应用程序驱动一些非常密集的硬件。我目前正在为设备设计一个 Web 界面,它的大部分功能是向用户呈现状态信息。所以每隔一秒左右,用相关信息(温度,帧率,yada yada ...)更新网页上的字段。该设备运行linux并具有apache。当前设置:

  1. Web 状态页面中的 Javascript 进行 AJAX 调用(来自 setInterval)
  2. PHP 文件运行,写入FIFO
  3. C 应用程序读取FIFO,根据输入做一些工作(可能是空白,意味着只给我统计信息),写回FIFO
  4. PHP 文件从FIFO读取,解析,json_encode,echo
  5. Javascript 解析 JSON 并更新页面

这就是你进来的地方......目标是取出 PHP 中间人。对 C 程序的 AJAX 调用有哪些约定(假设它们存在)?最佳实践?

选项(据我所知):

  • 插座。让 C 程序侦听特定端口 这里有类似的东西。
  • 节点.js。这个我不熟悉,没用过。但是我短暂的曝光让我觉得这可能是一个很好的用途呢?据我了解......它是“服务器端的javascript”,但它实际上是C代码?这里只需要一些见解。
  • 电脑动画。cgi 可以与不断运行的 C 程序一起工作吗?还是在调用时从头开始加载 C 程序?
  • HTML5 网络套接字

任何见解表示赞赏。当然,最好的答案很可能甚至没有在上面列出。这只是我在这方面的知识范围。谢谢!

4

1 回答 1

2

我们使用 C 库 libwebsockets ( http://libwebsockets.org/ ) 在 JavaScript 和 C++ 应用程序之间进行通信。在我们的例子中,我们通过 websockets 将 JSON 发送到 C++ 后端和从 C++ 后端发送。

在您的情况下,您可以获取当前通过 Ajax 发送的相同数据,并通过 websocket 将其发送到 C 程序。然后,C 程序可以生成与 PHP 程序生成的 JSON 相同的 JSON,并将其再次通过 websocket 发送回 JavaScript。

于 2013-08-01T16:30:06.880 回答