在 C++ 和远程之间通信 Javascript

Communicating between C++ and Remote Javascript

我在服务器上有一个 C++ 程序 运行。我想从网页控制程序。

不幸的是,这对我来说是新领域,我想我可能误入歧途了。到目前为止我所做的是在我的程序和 CGI​​ 脚本之间创建一个 IPC。当用户加载网页时,cgi 脚本运行,查询我的主应用程序一些数据,然后创建一些 javascript 代码——即它填充一些变量,另一个 js 文件读取,并用来显示页面正确。

这似乎可行,但现在我想定期更新网页(比如每两分钟左右)。我想知道我是否应该放弃我拥有的东西并在两者之间实现某种套接字通信。我的替代方法是重新运行 cgi 脚本并动态重新加载变量。

我想知道这是否会被视为一种拼凑......(同样,我对 javascript 不是很熟悉,所以不幸的是我不太清楚什么是好的或坏的做法) .

可以通过以下几种方式定期更新网页:

  1. 从您的网页,您可以定期 Ajax 调用 CGI 服务器以获取更新的数据。当该数据返回时,您可以使用 Javascript 将较新的数据放入显示的网页中。

  2. 您可以建立从网页到服务器的 webSocket 连接。一旦建立了 webSocket 连接,服务器就可以在适当的时候直接向客户端发送新数据。客户端收到新数据后,可以使用Javascript将其插入到显示的网页中。

webSocket 连接选项通常被认为更有效,因为只有当服务器实际有一些新数据时,客户端和服务器之间才会进行通信。它还提供了更低的延迟来显示更改并提供更高效的带宽使用,因为当服务器上没有任何新内容时,客户端不会向服务器发出请求。

要实现服务器端 webSocket 连接,除了 CGI 脚本之外,您还需要一些东西,因为 webSocket 连接是持久的。您还需要改进 C++ 程序与任何进程之间的通知 运行 webSocket 连接,这样您也可以在那里做一些高效的事情。