我正在创建一个由基于web的前端和c++后端组成的应用程序,并具有以下要求:1)不应该安装任何web服务器,如Apache或类似的软件2)前端UI应该能够触发后端执行特定的度量3)计算完测量值后的后端应将值返回给前端,以便在WEB UI上进行描述。
我在网络编程方面很新,所以我做了一个研究,我发现没有安装web服务器可以用c++实现的http服务器代替,并带有boost或poco等相关库。然而,让我非常困惑的是前端和后端可以相互通信的方式。我知道c++不仅可以创建一个简单的套接字,还可以创建一个web套接字。我想问的是,对于上述功能,一个简单的套接字将做的工作,还是我需要使用web套接字?如果一个简单的套接字足以将数据从后台传输到前端,那么html前端如何与c++后端通信?在你看来,哪一种是最稳定和有效的方式?
与web浏览器的通信需要使用web浏览器碰巧支持的任何功能。"简单套接字"在浏览器中是不存在的。
大多数web应用程序使用简单的HTTP请求(所谓的"AJAX")到"REST"接口进行大多数交互,WebSockets用于那些需要"订阅"实时更改的能力或带宽效率比抗断开连接的弹性更重要的地方。
请记住,浏览器(通常)只支持JavaScript,并且前端和后端之间的通信在默认情况下是事务性的(即请求-响应,而不是消息处理)。