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

时间:2011-06-11 05:38:22

标签: javascript c++ node.js frontend backend

在不久的将来,我将不得不建立一个带有C ++后端和Web前端(需求)的系统。目前,我对它的了解不多。我认为Frontend将触发数据传输,而不是后端 - 所以不需要类似Comet的东西。

由于这方面的经验可能很少,我非常感谢您对我所做的设计决定的评论。

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

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

在这里,我看到了Node.js的位置。我对它进行了概述,这就是我所有疑惑所在的地方。

在Node.js上有一个HTTP处理服务器,它将'data backend'作为Node.js模块?我想,它应该没问题 - 但我不确定我是否真的需要所有这些异步,所以可能有一些我不知道的更简单的选项?你会怎么做这样的系统?

提前致谢。

2 个答案:

答案 0 :(得分:3)

“所有这些异步”并不是Node.js非常难以提供的额外功能。一旦你理解了Node.js的工作方式,它就是一种不同的Web服务视图,就像呼吸一样容易。

例如,我的同事需要一种将C ++程序包装为Web服务的方法,但该程序具有显着的启动成本,因此他们只想运行一个程序实例,在循环中运行,服务所有的网络请求。 Node.js中的所有内容都不到两次。

包装为每个请求调用的单个程序可以在少于十行Node.js中完成。不要把异步性看作是一件苦差事 - 如果你接受它,Node.js真棒。

那就是说,你可以去CGI路线,并以更标准的方式做,最终结果几乎是一样的。 This可能会也可能不会派上用场。

答案 1 :(得分:0)

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

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