运行C代码的AJAX调用的最佳实践?

时间:2012-09-03 19:08:00

标签: javascript c ajax node.js

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

  1. 来自网络状态页面的Javascript进行AJAX调用(来自setInterval)
  2. 运行PHP文件,写入FIFO
  3. C应用程序读取FIFO,根据输入做一些工作(可能是空白,意味着只给我统计数据),写回FIFO
  4. PHP文件从FIFO,parses,json_encode,echo
  5. 读取
  6. Javascript解析JSON并更新页面
  7. 这是你进来的地方......目标是取出PHP中间人。 AJAX调用C程序有哪些约定(假设它们存在)?最佳做法?

    选项(据我所知):

    • Sockets。让C程序监听特定端口. Something similar here.
    • Node.js的。我对此并不熟悉,我从未使用过它。但是我的短暂曝光让我觉得这可能是一个很好的用途吗?据我所知...它是“服务器端的javascript”,但它实际上是C代码?这里需要一些见解。
    • CGI。 cgi可以使用不断运行的C程序吗?或者在调用时从头开始加载C程序?
    • HTML5 WebSockets

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

1 个答案:

答案 0 :(得分:1)

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

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