在不久的将来,我将不得不建立一个带有C ++后端和Web前端(需求)的系统。目前,我对它的了解不多。我认为Frontend将触发数据传输,而不是后端 - 所以不需要类似Comet的东西。
由于这方面的经验可能很少,我非常感谢您对我所做的设计决定的评论。
首先,我不喜欢从C ++生成HTML的选项。 因此,C ++后端必须与Javascript前端进行通信。我在这里看到的最简单的选项是Ajax。我认为到目前为止应该没问题。
使用C ++后端通过Ajax进行通信意味着后端应该能够处理HTTP。将提供实际数据的后端与HTTP处理功能分开是很好的。
在这里,我看到了Node.js的位置。我对它进行了概述,这就是我所有疑惑所在的地方。
在Node.js上有一个HTTP处理服务器,它将'data backend'作为Node.js模块?我想,它应该没问题 - 但我不确定我是否真的需要所有这些异步,所以可能有一些我不知道的更简单的选项?你会怎么做这样的系统?
提前致谢。
答案 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服务器处理。