我在服务器上运行了一个c ++程序。我想从网页控制程序。
不幸的是,这对我来说是一个新领域,我想我可能已经走错了路。到目前为止我所做的是在我的程序和CGI脚本之间创建一个IPC。当用户加载网页时,cgi脚本运行,向我的主应用程序查询一些数据,然后创建一些javascript代码 - 即它填充一些变量,另一个js文件读取,并用于正确显示页面。
这似乎有效,但现在我想定期更新网页(比如说每两分钟左右)。我想知道我是否应该放弃我拥有的东西并在两者之间实现某种套接字通信。我的替代方法是重新运行cgi脚本并动态重新加载变量。
我想知道这是否会被认为是一种危险...(再次,不要过于熟悉javascript,所以不幸的是我不太清楚什么是好的或坏的实践)。
答案 0 :(得分:0)
定期更新网页可以通过以下几种方式完成:
在您的网页中,您可以定期向CGI服务器发送Ajax调用以获取更新的数据。返回该数据后,您可以使用Javascript将更新的数据放入显示的网页中。
您可以从网页到服务器建立webSocket连接。一旦建立了webSocket连接,服务器就可以在适当的时候直接向客户端发送新数据。客户端在接收新数据时,可以使用Javascript将其插入显示的网页。
webSocket连接选项通常被认为更有效,因为当服务器实际上有一些新数据时,只在客户端和服务器之间进行通信。它还提供更低的延迟以显示更改并提供更有效的带宽使用,因为当服务器上没有任何新内容时,不会从客户端向服务器发出请求。
要实现服务器端webSocket连接,除了CGI脚本之外还需要一些东西,因为webSocket连接是持久的。您还希望改进C ++程序与运行webSocket连接的进程之间的通知,以便在那里做一些有效的事情。