用于C+的外部Web界面+;应用 我正在开发一个在嵌入式系统上运行的C++应用程序的Web界面。

用于C+的外部Web界面+;应用 我正在开发一个在嵌入式系统上运行的C++应用程序的Web界面。,c++,html,embedded,ipc,C++,Html,Embedded,Ipc,我想知道是否可以制作一个web界面,用于管理(设置和获取值)和显示应用程序提供的数据。(有点像Nagios。) 我的问题是:有没有什么技术可以让我在Web界面和C++应用程序之间进行“通信”? 请记住,我必须在嵌入式系统上这样做,所以我不能使用框架或其他太重的东西 > Web界面必须在C++应用程序之外(我不想在C++应用程序中对接口进行编码)。 我的想法是在Web界面上使用HTML5和Javascript,我将使用的Web服务器也是轻量级的(nginx) 如果有人能给我指点,那就太好了。提前

我想知道是否可以制作一个web界面,用于管理(设置和获取值)和显示应用程序提供的数据。(有点像Nagios。)

我的问题是:有没有什么技术可以让我在Web界面和C++应用程序之间进行“通信”? 请记住,我必须在嵌入式系统上这样做,所以我不能使用框架或其他太重的东西

<> > Web界面必须在C++应用程序之外(我不想在C++应用程序中对接口进行编码)。 我的想法是在Web界面上使用HTML5和Javascript,我将使用的Web服务器也是轻量级的(nginx)


如果有人能给我指点,那就太好了。提前感谢您。

如果您放弃web服务器处于不同进程的要求,那么有很多解决方案


所以你需要两件事:一个本地接口,你的网页可以用来配置C++应用程序和网页本身。 这种本地接口有几种常见的机制:

  • 修改配置文件,并发送SIGHUP以使应用程序重新读取它

    • 优点是您可以直接从shell测试(和使用)它,而不依赖于web界面
    • 还要注意,更改会自动持续
    • 缺点是,您需要一些存储“最后一个好”配置文件的方案,以防编辑的配置文件损坏
  • 使用本地streams套接字和简单协议(如果支持,可以使用UNIX套接字,也可以使用localhost:port loopback only TCP套接字)

    • 优点是您不会触摸(可能会损坏)配置文件
    • 缺点是,如果您愿意,那么您需要一些其他的方法来持久化更改,并且您必须首先编写这个协议
    • 请注意,只要协议是基于文本的,而不是二进制的,您至少仍然可以使用
      telnet
      或netcat对其进行测试,因此您仍然可以直接从shell使用它
      • set variable=value
        get variable
        等简单协议应该不会太难
  • <>如果你真的想要解耦Web和C++应用程序,确保你可以查询可用的选项,最好为它们提供类型、有效范围和组。然后,您可以避免每次添加或修改选项时重新编码网页

    您可以通过配置文件中的魔术注释(确保没有任何内容是默认的,没有注释),或者通过流套接字的
    list
    命令来管理它


    通过一点努力,您可以将您的分组、数据类型和验证约束建立在C++应用程序的类型系统中,因此,本地接口和Web应用程序都可以自动驱动。你可以从C++中创建双接口,并从Web界面调用公开的API。我太想念C++应用程序的UI部分。大多数像WT等的框架作品都不太漂亮。如果有的话,我们可以用C++的桌面创建一个漂亮的UI,用于桌面应用程序。但是,在Web界面和C++应用程序之间,我将有一个不需要的强耦合。我需要能够修改C++应用程序而不必触摸Web界面。