AJAX调用运行C代码的最佳做法?

我有一个潜在的C应用程序驱动一些相当密集的硬件。 我目前正在为该设备devise一个Web界面,其大部分function是向用户显示状态信息。 所以每隔一秒左右,更新网页上的相关信息(温度,帧速率,yada yada …)的字段设备运行Linux和有Apache。 当前设置:

  1. 来自网站状态页面的Javascript进行AJAX调用(来自setInterval)
  2. PHP文件运行,写入FIFO
  3. C应用程序读取FIFO ,根据input做一些工作(可能空白,意思就是给我统计),写回FIFO
  4. PHP文件从FIFO读取,parsing,json_encode,回声
  5. JavascriptparsingJSON和更新页面

这里是你进来的地方…目标是拿出PHP中间商。 AJAX调用C程序的约定是什么(假设它们存在)? 最佳实践?

选项(据我所知):

  • 套接字 。 让C程序在特定的端口上侦听。 这里有类似的东西。
  • Node.js的 我不熟悉这一点,我从来没有使用它。 但是我简短的曝光让我觉得这可能是一个很好的用处呢? 据我了解…它是“在服务器端的JavaScript”,但它实际上是C代码? 这里需要一些见解。
  • CGI 。 cgi能不能运行一个C程序? 或者调用时从零开始加载一个C程序?
  • HTML5 WebSockets ?

任何洞察赞赏。 当然,最好的答案很可能没有列在上面。 这只是我在这方面的知识。 谢谢!

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

在你的情况下,你可以采取相同的数据,你目前通过Ajax发送,并通过websocket发送到C程序。 然后,C程序可以生成与PHP程序生成的JSON相同的JSON,并通过websocket将其返回给JavaScript。