设计Javascript前端<->C++后端通信

Designing Javascript frontend <-> C++ backend communication

本文关键字:C++ 后端 通信 lt- Javascript 前端 设计 gt      更新时间:2023-09-26

在不久的将来,我将不得不制作一个具有C++后端和web前端的系统(需求)。目前,我对它了解不多。我认为前端将触发数据传输,而不是后端——所以不需要像Comet这样的东西。

由于在这个领域可能没有什么经验,我非常感谢你对我所做的设计决策的评论。

首先,我不喜欢从C++生成HTML的选项。因此,C++后端将不得不与Javascript前端进行通信。我在这里看到的最简单的选项是Ajax。我认为到目前为止应该还可以。

通过Ajax与C++后端进行通信意味着后端应该能够处理HTTP。最好将提供实际数据的后端与HTTP处理功能分开。

在这里我看到了Node.js的位置。我对它有一个概述,这是我所有怀疑的地方。

要在Node.js上有一个HTTP处理服务器,它将把"数据后端"作为Node.js模块?我想,这应该没问题,但我不确定我是否真的需要所有这些异步化,所以可能有一些我不知道的更简单的选项?你会如何制作这样一个系统?

提前谢谢。

"所有这些异步化"并不是Node.js非常努力提供的额外功能。这是一种不同的Web服务视图,一旦你了解了Node.js的工作原理,它就很容易呼吸。

例如,我的同事需要一种将C++程序包装为web服务的方法,但该程序的启动成本很高,所以他们只想运行该程序的一个实例,在循环中运行,为所有web请求提供服务。Node.js中的整个过程只花了不到两个屏幕的时间。

封装为每个请求调用的单个程序可以在不到十行的Node.js中完成。不要认为异步是一件烦人的事情——如果你接受它,Node.js就太棒了。

也就是说,你可以走CGI的路线,用一种更标准的方式来做,最终的结果几乎是一样的。这可能派上用场,也可能派不上用场。

您是否考虑过nginx、Apache等的CGI/FCGI模块选项?

如果没有,那么我认为从它开始是有意义的。你的模块将处理data/json请求,其余的将由HTTP服务器处理。